[Python-checkins] bpo-37031: Fix PyOS_AfterFork_Child() (GH-13537)
Victor Stinner
webhook-mailer at python.org
Fri May 24 09:20:28 EDT 2019
https://github.com/python/cpython/commit/b49858b4b7b4c9d85ef6946ad020f83e4fa1caa7
commit: b49858b4b7b4c9d85ef6946ad020f83e4fa1caa7
branch: master
author: Victor Stinner <vstinner at redhat.com>
committer: GitHub <noreply at github.com>
date: 2019-05-24T15:20:23+02:00
summary:
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().
files:
M Modules/posixmodule.c
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 8ebe3a0be053..cd5b5ce082ec 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -448,11 +448,11 @@ PyOS_AfterFork_Child(void)
{
_PyRuntimeState *runtime = &_PyRuntime;
_PyGILState_Reinit(runtime);
- _PyInterpreterState_DeleteExceptMain(runtime);
_PyEval_ReInitThreads(runtime);
_PyImport_ReInitLock();
_PySignal_AfterFork();
_PyRuntimeState_ReInitThreads(runtime);
+ _PyInterpreterState_DeleteExceptMain(runtime);
run_at_forkers(_PyInterpreterState_Get()->after_forkers_child, 0);
}
More information about the Python-checkins
mailing list