0
我有一個python程序調用到一個C++庫,它希望釋放所有的python鎖,以便其他python線程可以運行。主python線程的PyThreadState *是否應該爲NULL?
使用PyEval_SaveThread
和PyEval_ReleaseThread
我得到的錯誤,線程狀態是NULL:
Fatal Python error: PyEval_SaveThread: NULL tstate
然而,較低級別的功能似乎接受興高采烈地空狀態:
PyThreadState *s;
s = PyThreadState_Swap(NULL);
// (now s = 0)
PyEval_ReleaseLock();
// ....
PyEval_AcquireLock();
PyThreadState_Swap(s);
// everything seems to be just fine :)