https://github.com/python/cpython/commit/cbfaf41caf135b8598a560854cd59e992a2ccfed commit: cbfaf41caf135b8598a560854cd59e992a2ccfed branch: main author: Joseph Tibbertsma <josephtibbert...@gmail.com> committer: colesbury <colesb...@gmail.com> date: 2025-06-25T16:41:36Z summary:
Fix needless spinning in `_PyMutex_LockTimed` with zero timeout (gh-135872) The free threading build could spin unnecessarily on `_Py_yield()` if the initial compare and swap failed. files: A Misc/NEWS.d/next/Core_and_Builtins/2025-06-23-18-08-32.gh-issue-135871.50C528.rst M Python/lock.c diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-06-23-18-08-32.gh-issue-135871.50C528.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-06-23-18-08-32.gh-issue-135871.50C528.rst new file mode 100644 index 00000000000000..ce29ddecefe17f --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2025-06-23-18-08-32.gh-issue-135871.50C528.rst @@ -0,0 +1,2 @@ +Non-blocking mutex lock attempts now return immediately when the lock is busy +instead of briefly spinning in the :term:`free threading` build. diff --git a/Python/lock.c b/Python/lock.c index b125ad0c9e356d..ea6ac00bfeccb4 100644 --- a/Python/lock.c +++ b/Python/lock.c @@ -58,7 +58,7 @@ _PyMutex_LockTimed(PyMutex *m, PyTime_t timeout, _PyLockFlags flags) return PY_LOCK_ACQUIRED; } } - else if (timeout == 0) { + if (timeout == 0) { return PY_LOCK_FAILURE; } _______________________________________________ Python-checkins mailing list -- python-checkins@python.org To unsubscribe send an email to python-checkins-le...@python.org https://mail.python.org/mailman3//lists/python-checkins.python.org Member address: arch...@mail-archive.com