]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.12] gh-102512: Turn _DummyThread into _MainThread after os.fork() called from...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Mon, 22 Jan 2024 15:24:43 +0000 (16:24 +0100)
committerGitHub <noreply@github.com>
Mon, 22 Jan 2024 15:24:43 +0000 (15:24 +0000)
commit1bd2c93474792dae99664a43cfb70120a809c05d
tree441d1fc236857736085dcebeffed4e98a707cf43
parentd1f731ff0839198fd22af539b6ef28d12739d4d8
[3.12] gh-102512: Turn _DummyThread into _MainThread after os.fork() called from a foreign thread (GH-113261) (GH-114430)

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: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Lib/test/test_threading.py
Lib/threading.py
Misc/NEWS.d/next/Library/2023-03-08-00-02-30.gh-issue-102512.LiugDr.rst [new file with mode: 0644]