https://github.com/python/cpython/commit/80fc62f8af957fe77c8bcf7936a9b2df920671e3
commit: 80fc62f8af957fe77c8bcf7936a9b2df920671e3
branch: 3.14
author: Miss Islington (bot) <31488909+miss-isling...@users.noreply.github.com>
committer: colesbury <colesb...@gmail.com>
date: 2025-06-25T17:07:07Z
summary:

[3.14] gh-135871: Fix needless spinning in `_PyMutex_LockTimed` with zero 
timeout (gh-135872) (gh-135946)

The free threading build could spin unnecessarily on `_Py_yield()` if the 
initial
compare and swap failed.
(cherry picked from commit cbfaf41caf135b8598a560854cd59e992a2ccfed)

Co-authored-by: Joseph Tibbertsma <josephtibbert...@gmail.com>

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 28a12ad18352d1..3c0804c468e08d 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

Reply via email to