我有一个调用 c++ 库的 python 程序,它希望释放所有 python 锁,以便其他 python 线程可以运行。
使用PyEval_SaveThread
并且PyEval_ReleaseThread
我得到线程状态为NULL的错误:
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 :)