Unverified Kaydet (Commit) b49858b4 authored tarafından Victor Stinner's avatar Victor Stinner Kaydeden (comit) GitHub

bpo-37031: Fix PyOS_AfterFork_Child() (GH-13537)

PyOS_AfterFork_Child(): _PyInterpreterState_DeleteExceptMain() must
be called after _PyRuntimeState_ReInitThreads().

_PyRuntimeState_ReInitThreads() resets interpreters mutex after fork,
mutex used by _PyInterpreterState_DeleteExceptMain().
üst b3a9843c
...@@ -448,11 +448,11 @@ PyOS_AfterFork_Child(void) ...@@ -448,11 +448,11 @@ PyOS_AfterFork_Child(void)
{ {
_PyRuntimeState *runtime = &_PyRuntime; _PyRuntimeState *runtime = &_PyRuntime;
_PyGILState_Reinit(runtime); _PyGILState_Reinit(runtime);
_PyInterpreterState_DeleteExceptMain(runtime);
_PyEval_ReInitThreads(runtime); _PyEval_ReInitThreads(runtime);
_PyImport_ReInitLock(); _PyImport_ReInitLock();
_PySignal_AfterFork(); _PySignal_AfterFork();
_PyRuntimeState_ReInitThreads(runtime); _PyRuntimeState_ReInitThreads(runtime);
_PyInterpreterState_DeleteExceptMain(runtime);
run_at_forkers(_PyInterpreterState_Get()->after_forkers_child, 0); run_at_forkers(_PyInterpreterState_Get()->after_forkers_child, 0);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment