Issue 1625509: 'imp' documentation does not mention that lock is re-entrant (original) (raw)
My reading of import.c shows that imp.{acquire,release}_lock operate in the fashion of a threading.RLock, rather than a threading.Lock. Of course, this makes sense for the use to which it's put, but it would be great to have that mentioned explicitly in the documentation. Suggestion (stolen from threading documentation):
acquire_lock() Acquires the interpreter's import lock for the current thread. This lock should be used by import hooks to ensure thread-safety when importing modules.
Once a thread has acquired the import lock, the same thread may acquire it again without blocking; the thread must release it once for each time it has acquired it.
On platforms without threads, this function does nothing. New in version 2.3.