]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-88750: On Windows, PyThread_acquire_lock() no longer checks for NULL (#92586)
authorVictor Stinner <vstinner@python.org>
Tue, 10 May 2022 00:00:38 +0000 (02:00 +0200)
committerGitHub <noreply@github.com>
Tue, 10 May 2022 00:00:38 +0000 (02:00 +0200)
On Windows, PyThread_acquire_lock(), PyThread_acquire_lock_timed()
and PyThread_release_lock() no longer check at runtime if the lock is
not NULL.

Python/thread_nt.h

index b1defad426591f39a97b0c2dd80c8a2c2e9d2181..d1f1323948a6c67756215e8c5e013d30e05bc533 100644 (file)
@@ -264,14 +264,17 @@ PyThread_exit_thread(void)
 PyThread_type_lock
 PyThread_allocate_lock(void)
 {
-    PNRMUTEX aLock;
+    PNRMUTEX mutex;
 
     if (!initialized)
         PyThread_init_thread();
 
-    aLock = AllocNonRecursiveMutex() ;
+    mutex = AllocNonRecursiveMutex() ;
 
-    return (PyThread_type_lock) aLock;
+    PyThread_type_lock aLock = (PyThread_type_lock) mutex;
+    assert(aLock);
+
+    return aLock;
 }
 
 void
@@ -295,6 +298,8 @@ PyLockStatus
 PyThread_acquire_lock_timed(PyThread_type_lock aLock,
                             PY_TIMEOUT_T microseconds, int intr_flag)
 {
+    assert(aLock);
+
     /* Fow now, intr_flag does nothing on Windows, and lock acquires are
      * uninterruptible.  */
     PyLockStatus success;
@@ -321,8 +326,8 @@ PyThread_acquire_lock_timed(PyThread_type_lock aLock,
         milliseconds = INFINITE;
     }
 
-    if (aLock && EnterNonRecursiveMutex((PNRMUTEX)aLock,
-                                        (DWORD)milliseconds) == WAIT_OBJECT_0) {
+    if (EnterNonRecursiveMutex((PNRMUTEX)aLock,
+                               (DWORD)milliseconds) == WAIT_OBJECT_0) {
         success = PY_LOCK_ACQUIRED;
     }
     else {
@@ -340,9 +345,8 @@ PyThread_acquire_lock(PyThread_type_lock aLock, int waitflag)
 void
 PyThread_release_lock(PyThread_type_lock aLock)
 {
-    if (aLock) {
-        (void)LeaveNonRecursiveMutex((PNRMUTEX) aLock);
-    }
+    assert(aLock);
+    (void)LeaveNonRecursiveMutex((PNRMUTEX) aLock);
 }
 
 /* minimum/maximum thread stack sizes supported */