|
|
|
@ -425,14 +425,7 @@ PyThreadState_DeleteCurrent() |
|
|
|
_Py_atomic_store_relaxed(&_PyThreadState_Current, NULL); |
|
|
|
if (autoInterpreterState && PyThread_get_key_value(autoTLSkey) == tstate) |
|
|
|
PyThread_delete_key_value(autoTLSkey); |
|
|
|
/* |
|
|
|
Only call tstate_delete_common to have the tstate if we're not finalizing |
|
|
|
or we're the main thread. The main thread will do this for us. Not calling |
|
|
|
tstate_delete_common means we won't lock the interpreter head lock, |
|
|
|
avoiding a possible deadlock with the GIL. |
|
|
|
*/ |
|
|
|
if (!_Py_Finalizing || _Py_Finalizing == tstate) |
|
|
|
tstate_delete_common(tstate); |
|
|
|
tstate_delete_common(tstate); |
|
|
|
PyEval_ReleaseLock(); |
|
|
|
} |
|
|
|
#endif /* WITH_THREAD */ |
|
|
|
|