如何在Python进程中访问C ++进程创建的互斥锁?

时间:2019-06-22 11:03:38

标签: python c++ c++11 boost multiprocessing

我打算使用RewriteEngine on RewriteBase /new/ 在C ++和Python进程之间共享内存。假设我需要boost提供的互斥体以确保只有一个进程可以访问内存,那么我如何让python确认并解锁/锁定boost创建的互斥体?

1 个答案:

答案 0 :(得分:0)

似乎有两种明显的方法:

使用上面的链接中的示例和一些猜测,您将得到以下内容:

   static PyObject *mySharedMutex_lock(PyObject *self, PyObject *args)
   {
       const char *objectName;
       int sts;

       if (!PyArg_ParseTuple(args, "s", &objectName))
       {
           return NULL;
       }
       boost::interprocess::named_mutex mutex(open_or_create, objectName);
       mutex.lock();
       return Py_None;
   }

很明显,您需要以上链接中的说明中的另一个样板,并且可能提供了一种解锁互斥锁的方法。使它正常工作看起来并不麻烦。