mirror of https://github.com/python/cpython
gh-125245: Fix race condition when importing `collections.abc` (#125415)
If multiple threads concurrently imported `collections.abc`, some of the threads might incorrectly see the "shim" `Lib/collections/abc.py` module instead of the correct `Lib/_collections_abc.py` module. This affected both the free threading build and the default GIL-enabled build.
This commit is contained in:
parent
332356b880
commit
fed501d724
|
@ -29,6 +29,9 @@ __all__ = [
|
|||
import _collections_abc
|
||||
import sys as _sys
|
||||
|
||||
_sys.modules['collections.abc'] = _collections_abc
|
||||
abc = _collections_abc
|
||||
|
||||
from itertools import chain as _chain
|
||||
from itertools import repeat as _repeat
|
||||
from itertools import starmap as _starmap
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
import _collections_abc
|
||||
import sys
|
||||
sys.modules[__name__] = _collections_abc
|
|
@ -0,0 +1,2 @@
|
|||
Fix race condition when importing :mod:`collections.abc`, which could
|
||||
incorrectly return an empty module.
|
Loading…
Reference in New Issue