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

View 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 */