diff --git a/Lib/tempfile.py b/Lib/tempfile.py index 2c9ec9b0d1e..6a2730a892a 100644 --- a/Lib/tempfile.py +++ b/Lib/tempfile.py @@ -60,11 +60,17 @@ def gettempdir(): # Function to calculate a prefix of the filename to use +_pid = None + def gettempprefix(): - global template - if template == None: + global template, _pid + if os.name == 'posix' and _pid and _pid != os.getpid(): + # Our pid changed; we must have forked -- zap the template + template = None + if template is None: if os.name == 'posix': - template = '@' + `os.getpid()` + '.' + _pid = os.getpid() + template = '@' + `_pid` + '.' elif os.name == 'nt': template = '~' + `os.getpid()` + '-' elif os.name == 'mac':