Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个嵌入 Python 解释器的 C++ 应用程序。代码中的某些点可能会中断解释器,我需要确保解释器处于“安全”状态才能执行新代码。我只会调用 Py_Finalize 并重新初始化所有内容,除非我有一堆需要保持有效的 PyObject * 引用。是否有执行此操作的功能,或者是否有必要?当我在上面提到解释器被打断时,我的意思是 seg。我的应用程序尝试从中恢复的故障或访问冲突。
呃,试图从段错误或访问冲突中“恢复”是非常危险的。首先你得到这些是有原因的,那就是你的程序试图做一些它不应该做的事情;因此它遇到了错误或无法预料的情况。
Python 解释器中没有规定在上述情况下回滚到“安全点”。即使最终确定并重新初始化解释器,仍然可能会使一些静态数据处于不一致的状态。
如果您告诉我们您为什么要这样做,我们可能会建议一个替代方案。