]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
gh-114271: Make `_thread.lock` thread-safe in free-threaded builds (#116433)
authormpage <mpage@meta.com>
Wed, 6 Mar 2024 20:46:36 +0000 (12:46 -0800)
committerGitHub <noreply@github.com>
Wed, 6 Mar 2024 20:46:36 +0000 (15:46 -0500)
commitc62144a02cfae412a9deb4059fae141693a6edc9
tree27dbcef4728310e777f9f044ea0155bbb1a56a3b
parentce0ae1d784871085059a415aa589d9bd16ea8301
gh-114271: Make `_thread.lock` thread-safe in free-threaded builds (#116433)

Previously, the `locked` field was set after releasing the lock. This reverses
the order so that the `locked` field is set while the lock is still held.

There is still one thread-safety issue where `locked` is checked prior to
releasing the lock, however, in practice that will only be an issue when
unlocking the lock is contended, which should be rare.
Modules/_threadmodule.c