Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.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主线程的PyThreadState*是否预期为空? < P>我有一个Python程序,它调用一个C++库,希望释放所有的Python锁,以便其他Python线程可以运行。_Python_C_Multithreading_Gil - Fatal编程技术网

python主线程的PyThreadState*是否预期为空? < P>我有一个Python程序,它调用一个C++库,希望释放所有的Python锁,以便其他Python线程可以运行。

python主线程的PyThreadState*是否预期为空? < P>我有一个Python程序,它调用一个C++库,希望释放所有的Python锁,以便其他Python线程可以运行。,python,c,multithreading,gil,Python,C,Multithreading,Gil,使用PyEval\u SaveThread和PyEval\u ReleaseThread我得到线程状态为空的错误: Fatal Python error: PyEval_SaveThread: NULL tstate 但是,较低级别的函数似乎乐于接受NULL状态: PyThreadState *s; s = PyThreadState_Swap(NULL); // (now s = 0) PyEval_ReleaseLock(); // .... PyEval_AcquireLock();

使用
PyEval\u SaveThread
PyEval\u ReleaseThread
我得到线程状态为空的错误:

Fatal Python error: PyEval_SaveThread: NULL tstate
但是,较低级别的函数似乎乐于接受NULL状态:

PyThreadState *s;
s = PyThreadState_Swap(NULL);
// (now s = 0)
PyEval_ReleaseLock();

// ....

PyEval_AcquireLock();
PyThreadState_Swap(s);

// everything seems to be just fine :)

回答:,它绝不意味着为
(如果为空,则为致命错误)。原来这是因为我链接了两个不同版本的python,一个是通过boost_python,另一个是直接链接

顶部提示: 当发生有趣的事情时,使用
ldd
otool-L
检查库依赖关系;)