bpo-30891: importlib _find_and_load() try/except by vstinner · Pull Request #2665 · python/cpython

ncoghlan

ncoghlan

ncoghlan

serhiy-storchaka

@vstinner

Use sys.modules.get() in the "with _ModuleLockManager(name):" block
to protect the dictionary key with the module lock and use an atomic
get to prevent race condition.

Remove also _bootstrap._POPULATE since it was unused
(_bootstrap_external now has its own _POPULATE object), add a new
_SENTINEL object instead.

serhiy-storchaka

vstinner added a commit that referenced this pull request

Jul 21, 2017
Use sys.modules.get() in the "with _ModuleLockManager(name):" block
to protect the dictionary key with the module lock and use an atomic
get to prevent race condition.

Remove also _bootstrap._POPULATE since it was unused
(_bootstrap_external now has its own _POPULATE object), add a new
_SENTINEL object instead.
(cherry picked from commit e72b135)