PyGILState cleanup was too early - destructors called via module cleanup may use the API.
This commit is contained in:
parent
ecd2fdca0f
commit
6cb9029a22
|
@ -254,11 +254,6 @@ Py_Finalize(void)
|
||||||
call_sys_exitfunc();
|
call_sys_exitfunc();
|
||||||
initialized = 0;
|
initialized = 0;
|
||||||
|
|
||||||
/* Cleanup auto-thread-state */
|
|
||||||
#ifdef WITH_THREAD
|
|
||||||
_PyGILState_Fini();
|
|
||||||
#endif /* WITH_THREAD */
|
|
||||||
|
|
||||||
/* Get current thread state and interpreter pointer */
|
/* Get current thread state and interpreter pointer */
|
||||||
tstate = PyThreadState_Get();
|
tstate = PyThreadState_Get();
|
||||||
interp = tstate->interp;
|
interp = tstate->interp;
|
||||||
|
@ -310,6 +305,11 @@ Py_Finalize(void)
|
||||||
*/
|
*/
|
||||||
_PyExc_Fini();
|
_PyExc_Fini();
|
||||||
|
|
||||||
|
/* Cleanup auto-thread-state */
|
||||||
|
#ifdef WITH_THREAD
|
||||||
|
_PyGILState_Fini();
|
||||||
|
#endif /* WITH_THREAD */
|
||||||
|
|
||||||
/* Clear interpreter state */
|
/* Clear interpreter state */
|
||||||
PyInterpreterState_Clear(interp);
|
PyInterpreterState_Clear(interp);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue