diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/tempfile.py | 11 | ||||
-rw-r--r-- | Lib/test/output/test_mmap | 1 | ||||
-rw-r--r-- | Lib/test/test_mmap.py | 2 |
3 files changed, 12 insertions, 2 deletions
diff --git a/Lib/tempfile.py b/Lib/tempfile.py index 8ac707d..3ad6d7c 100644 --- a/Lib/tempfile.py +++ b/Lib/tempfile.py @@ -89,6 +89,7 @@ elif os.name == 'mac': else: template = 'tmp' # XXX might choose a better one +_pidcache = {} def gettempprefix(): """Function to calculate a prefix of the filename to use. @@ -96,9 +97,15 @@ def gettempprefix(): notion, so that concurrent processes don't generate the same prefix. """ - global template if template is None: - return '@' + `os.getpid()` + '.' + p = os.getpid() + t = _pidcache.get(p, 0) + if t: + return t + if len(_pidcache) > 100: # stop unbounded growth + _pidcache.clear() + t = _pidcache[p] = '@' + `p` + '.' + return t else: return template diff --git a/Lib/test/output/test_mmap b/Lib/test/output/test_mmap index 24e28f8..ce2c823 100644 --- a/Lib/test/output/test_mmap +++ b/Lib/test/output/test_mmap @@ -1,4 +1,5 @@ test_mmap +<type 'mmap'> Position of foo: 1.0 pages Length of file: 2.0 pages Contents of byte 0: '\000' diff --git a/Lib/test/test_mmap.py b/Lib/test/test_mmap.py index d07e4c6..7c49cf2 100644 --- a/Lib/test/test_mmap.py +++ b/Lib/test/test_mmap.py @@ -18,6 +18,8 @@ def test_both(): f.close() # Simple sanity checks + + print type(m) # SF bug 128713: segfaulted on Linux print ' Position of foo:', string.find(m, 'foo') / float(PAGESIZE), 'pages' assert string.find(m, 'foo') == PAGESIZE |