SIGN IN SIGN UP

[3.11] gh-102512: Turn _DummyThread into _MainThread after os.fork() called from a foreign thread (GH-113261) (GH-114431)

Always set a _MainThread as a main thread after os.fork() is called from
a thread started not by the threading module.

A new _MainThread was already set as a new main thread after fork if
threading.current_thread() was not called for a foreign thread before fork.
Now, if it was called before fork, the implicitly created _DummyThread will
be turned into _MainThread after fork.

It fixes, in particularly, an incompatibility of _DummyThread with
the threading shutdown logic which relies on the main thread
having tstate_lock.

(cherry picked from commit 49785b06ded19c7c4afce186bac90fea707470ea)

Co-authored-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
S
Serhiy Storchaka committed
a0f30b04fe3a54ffe4dbd39bd927fc45a0896f2d
Parent: 459726f
Committed by GitHub <noreply@github.com> on 1/22/2024, 3:00:33 PM