detail which may vary from release to release. However, Python ensures
that circular imports work without any deadlocks.
-.. versionchanged:: 3.3
- In Python 3.3, the locking scheme has changed to per-module locks for
- the most part. A global import lock is kept for some critical tasks,
- such as initializing the per-module locks.
-
.. function:: lock_held()
exception is made for circular imports, which by construction have to
expose an incomplete module object at some point.
+.. versionchanged:: 3.3
+ The locking scheme has changed to per-module locks for
+ the most part. A global import lock is kept for some critical tasks,
+ such as initializing the per-module locks.
+
+
.. function:: acquire_lock()
Acquire the interpreter's global import lock for the current thread.
On platforms without threads, this function does nothing.
+.. versionchanged:: 3.3
+ The locking scheme has changed to per-module locks for
+ the most part. A global import lock is kept for some critical tasks,
+ such as initializing the per-module locks.
+
.. function:: release_lock()
Release the interpreter's global import lock. On platforms without
threads, this function does nothing.
+.. versionchanged:: 3.3
+ The locking scheme has changed to per-module locks for
+ the most part. A global import lock is kept for some critical tasks,
+ such as initializing the per-module locks.
+
The following constants with integer values, defined in this module, are used
to indicate the search result of :func:`find_module`.
Documentation
-------------
+- Issue #15053: Copy Python 3.3 import lock change notice to all relevant
+ functions in imp instead of just at the top of the relevant section.
+
- Issue #15288: Link to the term "loader" in notes in pkgutil about how things
won't work as expected in Python 3.3 and mark the requisite functions as
"changed" since they will no longer work with modules directly imported by