gpt4 book ai didi

python - 主 python 线程的 PyThreadState* 是否应为 NULL?

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:45 25 4
gpt4 key购买 nike

我有一个调用 c++ 库的 python 程序,它希望释放所有 python 锁,以便其他 python 线程可以运行。

使用 PyEval_SaveThreadPyEval_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 :)

最佳答案

答案:,它永远不会是NULL(如果是,那就是 fatal error )。原来这是因为我链接了两个不同版本的 python,一个通过 boost_python,另一个直接链接。

重要提示:当有趣的事情发生时,使用 lddotool -L 检查你的库依赖 ;)

关于python - 主 python 线程的 PyThreadState* 是否应为 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4985933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com