]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
gh-102512: Turn _DummyThread into _MainThread after os.fork() called from a foreign...
authorSerhiy Storchaka <storchaka@gmail.com>
Mon, 22 Jan 2024 14:14:42 +0000 (16:14 +0200)
committerGitHub <noreply@github.com>
Mon, 22 Jan 2024 14:14:42 +0000 (16:14 +0200)
commit49785b06ded19c7c4afce186bac90fea707470ea
treee3a0dccafdd64288e4ecf03cef8a84d9a7b854a7
parent9f7176d360b5898003d5ca78bab1822ad67867c4
gh-102512: Turn _DummyThread into _MainThread after os.fork() called from a foreign thread (GH-113261)

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.

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]