mirror of
https://github.com/python/cpython.git
synced 2025-10-04 06:06:44 +00:00
* Rewrite importlib _get_module_lock(): it is now responsible to hold
the imp lock directly.
* _find_and_load() now holds the module lock to check if name is in
sys.modules to prevent a race condition
(cherry picked from commit 4f9a446f3f
)
This commit is contained in:
parent
044e156426
commit
fe6e686c27
3 changed files with 1551 additions and 1561 deletions
|
@ -1560,10 +1560,6 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *globals,
|
|||
if (initializing == -1)
|
||||
PyErr_Clear();
|
||||
if (initializing > 0) {
|
||||
#ifdef WITH_THREAD
|
||||
_PyImport_AcquireLock();
|
||||
#endif
|
||||
/* _bootstrap._lock_unlock_module() releases the import lock */
|
||||
value = _PyObject_CallMethodIdObjArgs(interp->importlib,
|
||||
&PyId__lock_unlock_module, abs_name,
|
||||
NULL);
|
||||
|
|
3050
Python/importlib.h
3050
Python/importlib.h
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue