diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2017-07-10 20:52:32 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-10 20:52:32 (GMT) |
commit | 4f9a446f3fb42f800e73cd9414dd1eccb3ca4fa7 (patch) | |
tree | 2fcee0a8915be2eee63c1856e8a1147fa1fd4a4b /Python/import.c | |
parent | b136f11f3a51f9282ae992bac68f170ca5563b55 (diff) | |
download | cpython-4f9a446f3fb42f800e73cd9414dd1eccb3ca4fa7.zip cpython-4f9a446f3fb42f800e73cd9414dd1eccb3ca4fa7.tar.gz cpython-4f9a446f3fb42f800e73cd9414dd1eccb3ca4fa7.tar.bz2 |
bpo-30891: Fix importlib _find_and_load() race condition (#2646)
* 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
Diffstat (limited to 'Python/import.c')
-rw-r--r-- | Python/import.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/Python/import.c b/Python/import.c index 6cdb366..ee59926 100644 --- a/Python/import.c +++ b/Python/import.c @@ -1559,10 +1559,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); |