Revert "bpo-42160: tempfile: Reduce overhead of pid check. (GH-22997)"

`_RandomNameSequence` is not true singleton so using `os.register_at_fork` doesn't make sense unlike `random._inst`.

This reverts commit 8e409cebad.
This commit is contained in:
Inada Naoki 2020-10-31 11:15:38 +09:00 committed by GitHub
parent b62bdf71ea
commit 43ca084c88
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 13 deletions

View file

@ -129,22 +129,24 @@ class _RandomNameSequence:
_RandomNameSequence is an iterator."""
def __init__(self, characters="abcdefghijklmnopqrstuvwxyz0123456789_", length=8, rng=None):
if rng is None:
rng = _Random()
if hasattr(_os, "fork"):
# prevent same state after fork
_os.register_at_fork(after_in_child=rng.seed)
self.rng = rng
self.characters = characters
self.length = length
characters = "abcdefghijklmnopqrstuvwxyz0123456789_"
@property
def rng(self):
cur_pid = _os.getpid()
if cur_pid != getattr(self, '_rng_pid', None):
self._rng = _Random()
self._rng_pid = cur_pid
return self._rng
def __iter__(self):
return self
def __next__(self):
c = self.characters
return ''.join(self.rng.choices(c, k=self.length))
choose = self.rng.choice
letters = [choose(c) for dummy in range(8)]
return ''.join(letters)
def _candidate_tempdir_list():
"""Generate a list of candidate temporary directories which