Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从您不控制的线程中释放Python导入锁&;无法访问_Python_C++_Dll_Code Injection_Cpython - Fatal编程技术网

从您不控制的线程中释放Python导入锁&;无法访问

从您不控制的线程中释放Python导入锁&;无法访问,python,c++,dll,code-injection,cpython,Python,C++,Dll,Code Injection,Cpython,因此,我将一个DLL注入Cython应用程序,以扩展其功能。我使用以下代码执行此操作: 注意:使用Python2.7;使用旧的ModuleNoBlock方案 PyGILState_STATE sMain = PyGILState_Ensure(); PyObject* mHook = PyImport_ImportModuleNoBlock("hookmodule"); PyGILState_Release(sMain); 现在,当我将DLL注入应用程序并打印错误时,我得到以下结果: Impo

因此,我将一个DLL注入Cython应用程序,以扩展其功能。我使用以下代码执行此操作: 注意:使用Python2.7;使用旧的ModuleNoBlock方案

PyGILState_STATE sMain = PyGILState_Ensure();
PyObject* mHook = PyImport_ImportModuleNoBlock("hookmodule");
PyGILState_Release(sMain);
现在,当我将DLL注入应用程序并打印错误时,我得到以下结果:

ImportError: Failed to import hookmodule because the import lockis held by another thread. 
我找到了imp模块的源代码

但是
\u PyImport\u ReleaseLock(void)
只有在从获取锁的同一线程调用锁时才会释放锁

可以这样做吗?

已修复。使用

_PyImport_ReInitLock(void)
进口前