我试图找到一个函数来告诉我当前线程是否持有全局解释器锁。
Python/C-API文档似乎没有包含这样的函数。
我的解决方案是在使用 PyEval_SaveThread
释放锁之前,使用 PyGILState_Ensure()
获取锁,以避免尝试释放未由当前线程获取的锁。
(顺便问一下,“issues a fatal error”是什么意思?)
这个问题的背景是,我有一个嵌入了Python的多线程应用程序。如果一个线程关闭而没有释放锁(这可能是由于崩溃导致的),其他线程将无法再运行。因此,在清理/关闭线程时,我想检查该线程是否持有锁,并在这种情况下释放它。
感谢您提前的回答!
faulthandler
模块。 - Ramchandra Apte