|
|
|
@ -202,8 +202,11 @@ _PyImport_ReInitLock(void) |
|
|
|
if (import_lock_level > 1) { |
|
|
|
/* Forked as a side effect of import */ |
|
|
|
long me = PyThread_get_thread_ident(); |
|
|
|
PyThread_acquire_lock(import_lock, 0); |
|
|
|
/* XXX: can the previous line fail? */ |
|
|
|
/* The following could fail if the lock is already held, but forking as |
|
|
|
a side-effect of an import is a) rare, b) nuts, and c) difficult to |
|
|
|
do thanks to the lock only being held when doing individual module |
|
|
|
locks per import. */ |
|
|
|
PyThread_acquire_lock(import_lock, NOWAIT_LOCK); |
|
|
|
import_lock_thread = me; |
|
|
|
import_lock_level--; |
|
|
|
} else { |
|
|
|
|