From e0e88b0483d73c925e8f1809d24031acd6bfdf01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Charles-Fran=C3=A7ois=20Natali?= Date: Thu, 2 Feb 2012 19:57:19 +0100 Subject: Issue #13817: After fork(), reinit the ad-hoc TLS implementation earlier to fix a random deadlock when fork() is called in a multithreaded process in debug mode, and make PyOS_AfterFork() more robust. --- Modules/signalmodule.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'Modules/signalmodule.c') diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c index f306bba16f..908c2ee994 100644 --- a/Modules/signalmodule.c +++ b/Modules/signalmodule.c @@ -976,10 +976,12 @@ void PyOS_AfterFork(void) { #ifdef WITH_THREAD + /* PyThread_ReInitTLS() must be called early, to make sure that the TLS API + * can be called safely. */ + PyThread_ReInitTLS(); PyEval_ReInitThreads(); main_thread = PyThread_get_thread_ident(); main_pid = getpid(); _PyImport_ReInitLock(); - PyThread_ReInitTLS(); #endif } -- cgit v1.2.1