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.
This commit is contained in:
Victor Stinner 2022-05-10 02:00:38 +02:00 committed by GitHub
parent 6ed7c353b8
commit cb35402c18
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

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