summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2019-04-24 15:14:33 (GMT)
committerGitHub <noreply@github.com>2019-04-24 15:14:33 (GMT)
commitb930a2d2b1247bdba560db341ba90a9cbb538eb3 (patch)
treeed2cd1a40f8150e1c498eca98427c9af4f1c7ada /Modules
parent8bb3230149538c25c1bacced5e64a3c071475f73 (diff)
downloadcpython-b930a2d2b1247bdba560db341ba90a9cbb538eb3.zip
cpython-b930a2d2b1247bdba560db341ba90a9cbb538eb3.tar.gz
cpython-b930a2d2b1247bdba560db341ba90a9cbb538eb3.tar.bz2
bpo-36710: PyOS_AfterFork_Child() pass runtime parameter (GH-12936)
The PyOS_AfterFork_Child() function now pass a 'runtime' parameter to subfunctions. * Fix _PyRuntimeState_ReInitThreads(): use the correct memory allocator * Add runtime parameter to _PyRuntimeState_ReInitThreads(), _PyGILState_Reinit() and _PyInterpreterState_DeleteExceptMain() * Move _PyGILState_Reinit() to the internal C API.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/posixmodule.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index e8dbdcc..56ec3ee 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -421,12 +421,13 @@ PyOS_AfterFork_Parent(void)
void
PyOS_AfterFork_Child(void)
{
- _PyGILState_Reinit();
- _PyInterpreterState_DeleteExceptMain();
+ _PyRuntimeState *runtime = &_PyRuntime;
+ _PyGILState_Reinit(runtime);
+ _PyInterpreterState_DeleteExceptMain(runtime);
PyEval_ReInitThreads();
_PyImport_ReInitLock();
_PySignal_AfterFork();
- _PyRuntimeState_ReInitThreads();
+ _PyRuntimeState_ReInitThreads(runtime);
run_at_forkers(_PyInterpreterState_Get()->after_forkers_child, 0);
}