Add sanity assertions in some import lock code (issue #15599).
This commit is contained in:
parent
5b89840d9c
commit
202b60640b
|
@ -68,6 +68,7 @@ class Finder:
|
|||
# Simulate some thread-unsafe behaviour. If calls to find_module()
|
||||
# are properly serialized, `x` will end up the same as `numcalls`.
|
||||
# Otherwise not.
|
||||
assert imp.lock_held()
|
||||
with self.lock:
|
||||
self.numcalls += 1
|
||||
x = self.x
|
||||
|
|
|
@ -169,6 +169,7 @@ _PyImport_AcquireLock(void)
|
|||
PyThread_acquire_lock(import_lock, 1);
|
||||
PyEval_RestoreThread(tstate);
|
||||
}
|
||||
assert(import_lock_level == 0);
|
||||
import_lock_thread = me;
|
||||
import_lock_level = 1;
|
||||
}
|
||||
|
@ -182,6 +183,7 @@ _PyImport_ReleaseLock(void)
|
|||
if (import_lock_thread != me)
|
||||
return -1;
|
||||
import_lock_level--;
|
||||
assert(import_lock_level >= 0);
|
||||
if (import_lock_level == 0) {
|
||||
import_lock_thread = -1;
|
||||
PyThread_release_lock(import_lock);
|
||||
|
|
Loading…
Reference in New Issue