[Python-checkins] gh-88750: On Windows, PyThread_acquire_lock() no longer checks for NULL (#92586)

vstinner webhook-mailer at python.org
Mon May 9 20:00:42 EDT 2022


https://github.com/python/cpython/commit/cb35402c1867b48704c2de1d1efd465ca738f374
commit: cb35402c1867b48704c2de1d1efd465ca738f374
branch: main
author: Victor Stinner <vstinner at python.org>
committer: vstinner <vstinner at python.org>
date: 2022年05月10日T02:00:38+02:00
summary:
gh-88750: On Windows, PyThread_acquire_lock() no longer checks for NULL (#92586)
On Windows, PyThread_acquire_lock(), PyThread_acquire_lock_timed()
and PyThread_release_lock() no longer check at runtime if the lock is
not NULL.
files:
M Python/thread_nt.h
diff --git a/Python/thread_nt.h b/Python/thread_nt.h
index b1defad426591..d1f1323948a6c 100644
--- a/Python/thread_nt.h
+++ b/Python/thread_nt.h
@@ -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 */


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /