cpython/Lib
Tim Peters 4fd5a06580 SF bug #509805 tempfile.gettempdir not threadsafe
This is an ancient race when multiple threads call gettempdir() (or
anything relying on it) for the first time.

Fixed x-platform via the Big Hammer of rearranging the code to serialize
the first calls.  Subsequent calls are as fast as before.

Note that the Python test suite can't provoke this bug:  it requires
setting up multiple threads making the very first calls into tempfile,
but the test suite uses tempfile several times before getting to
test_threadedtempfile.

Bugfix candidate.
2002-01-28 23:11:23 +00:00
..
compiler Merge of the release22 branch changes back into the trunk. 2001-12-21 20:04:22 +00:00
curses Catch curses.error instead of a non-existent global (PyChecker) 2001-08-13 13:47:23 +00:00
distutils SWIGing a source file <name>.i silently overwrites <name>.c if it is 2002-01-18 20:30:53 +00:00
email _parsebody(): When adding subparts to a multipart container, make sure 2002-01-27 06:48:02 +00:00
encodings Patch #487275: Add windows-1251 charset alias. 2001-12-02 12:24:19 +00:00
hotshot Update to reflect changes to the low-level logreader: share the info 2001-10-29 20:57:23 +00:00
idlelib further work on saving configs 2002-01-24 06:02:50 +00:00
lib-old Use string.ascii_letters instead of string.letters (SF bug #226706). 2001-07-20 19:05:50 +00:00
lib-tk Fix typo in label 2002-01-02 16:38:19 +00:00
plat-aix3 Remove obsolete entries from regen scripts. 2001-07-31 08:47:55 +00:00
plat-aix4 Remove obsolete entries from regen scripts. 2001-07-31 08:47:55 +00:00
plat-beos5 Remove obsolete entries from regen scripts. 2001-07-31 08:47:55 +00:00
plat-freebsd2 Remove obsolete entries from regen scripts. 2001-07-31 08:47:55 +00:00
plat-freebsd3 Remove obsolete entries from regen scripts. 2001-07-31 08:47:55 +00:00
plat-freebsd4 Remove obsolete entries from regen scripts. 2001-07-31 08:47:55 +00:00
plat-freebsd5 Remove obsolete entries from regen scripts. 2001-07-31 08:47:55 +00:00
plat-generic Remove obsolete entries from regen scripts. 2001-07-31 08:47:55 +00:00
plat-irix5 Remove obsolete entries from regen scripts. 2001-07-31 08:47:55 +00:00
plat-irix6 Remove obsolete entries from regen scripts. 2001-07-31 08:47:55 +00:00
plat-linux1 Remove obsolete entries from regen scripts. 2001-07-31 08:47:55 +00:00
plat-linux2 Regenerated for Linux 2.2.4. 2001-12-22 15:23:50 +00:00
plat-netbsd1 Remove obsolete entries from regen scripts. 2001-07-31 08:47:55 +00:00
plat-next3 Do no regenerate modules that should no longer be here. 2001-05-10 15:52:47 +00:00
plat-riscos SF patch 493739 2 Bugfixes for 2.2c1 (RISC OS specific), from 2001-12-15 22:12:47 +00:00
plat-sunos4 Do no regenerate modules that should no longer be here. 2001-05-10 15:52:47 +00:00
plat-sunos5 Regenerate for Solaris 8. 2001-08-09 12:33:32 +00:00
plat-unixware7 Remove obsolete entries from regen scripts. 2001-07-31 08:47:55 +00:00
site-packages
test Test case of a singleton multipart; i.e. a multipart/* with only one 2002-01-27 06:49:26 +00:00
xml Attribute nodes did not always get their ownerDocument and ownerElement 2001-12-06 18:27:48 +00:00
BaseHTTPServer.py Remove unused imports from previous checkin. 2001-07-25 06:12:16 +00:00
Bastion.py added __all__ lists to a number of Python modules 2001-01-20 19:54:20 +00:00
CGIHTTPServer.py Fix two typos, one noted by Noah Spurrier in SF bug #475166, the 2001-10-26 03:38:46 +00:00
ConfigParser.py Whitespace normalization. 2001-10-18 21:57:37 +00:00
Cookie.py Patch #444359: Remove unused imports. 2001-08-02 07:15:29 +00:00
FCNTL.py Add a new FCNTL.py backward compatibility module that issues a deprecation 2001-05-09 21:13:23 +00:00
HTMLParser.py Convert to using string methods instead of the string module. 2001-12-03 17:09:50 +00:00
MimeWriter.py String method conversion. 2001-02-09 09:39:08 +00:00
Queue.py removed __all__ from several modules 2001-02-18 03:30:53 +00:00
SimpleHTTPServer.py Correction after translation test. 2001-02-09 10:26:06 +00:00
SimpleXMLRPCServer.py _dispatch(): Do no re-define the resolve_dotted_atttribute() function 2001-09-29 04:54:33 +00:00
SocketServer.py Apply the first chunk of the second patch from SF bug #471720: 2001-10-23 21:42:45 +00:00
StringIO.py Restore Python 2.1 StringIO.py behaviour: support concatenating 2002-01-06 17:15:05 +00:00
TERMIOS.py No need to call filterwarnings() to suppress further warnings from this 2001-02-27 21:51:47 +00:00
UserDict.py copy(): Make sure the copy of a derived class cannot share the data of the 2001-11-05 17:40:48 +00:00
UserList.py Patch #424475: Speed-up tp_compare usage, by special-casing the common 2001-06-09 07:34:05 +00:00
UserString.py This patch changes the way the string .encode() method works slightly 2001-05-15 12:00:02 +00:00
__future__.py Repair repr of future-features (wasn't updated to include the new 2001-08-24 17:13:54 +00:00
__phello__.foo.py Fix the frozen bytecode for __hello__ (betcha didn't know that existed 2001-10-18 18:49:37 +00:00
aifc.py added __all__ lists to a number of Python modules 2001-01-20 19:54:20 +00:00
anydbm.py Catch only the relevant exceptions instead of using a bare except clause. 2001-05-11 18:27:00 +00:00
asynchat.py Fix from the Madusa mailing list: 2001-04-08 07:23:44 +00:00
asyncore.py Partial fix for problem in SF buf #487458 2001-12-14 16:15:11 +00:00
atexit.py Bug #128475: mimetools.encode (sometimes) fails when called from a thread. 2001-01-21 03:40:37 +00:00
audiodev.py Commenting out the getfillable() method -- it's broken, and nobody 2001-08-13 15:04:33 +00:00
base64.py The first batch of changes recommended by the fixdiv tool. These are 2001-09-04 19:14:14 +00:00
bdb.py canonic(): don't use abspath() for filenames looking like <...>; this 2001-11-29 02:50:15 +00:00
binhex.py The first batch of changes recommended by the fixdiv tool. These are 2001-09-04 19:14:14 +00:00
bisect.py The first batch of changes recommended by the fixdiv tool. These are 2001-09-04 19:14:14 +00:00
calendar.py Application of patch #401842 by Denis S. Otkidach to support 2001-05-22 15:58:30 +00:00
cgi.py "ib" should be "boundary"; reported by Neal Norwitz. 2001-10-13 18:38:53 +00:00
cgitb.py Make the module docstring agree with reality: the module prvides the 2001-12-19 14:27:41 +00:00
chunk.py Clean up bare except: when determining whether a file is seekable. 2001-05-11 19:14:51 +00:00
cmd.py Whitespace normalization. 2001-08-09 21:40:30 +00:00
code.py softspace(): be prepared to catch AttributeError as well as TypeError 2001-09-18 13:33:01 +00:00
codecs.py Added new helpers for easy access to codecs. Docs will follow. 2001-09-19 11:24:48 +00:00
codeop.py A fiddled version of the rest of Michael Hudson's SF patch 2001-08-17 22:11:27 +00:00
colorsys.py added __all__ lists to a number of Python modules 2001-01-20 19:54:20 +00:00
commands.py added __all__ lists to a number of Python modules 2001-01-20 19:54:20 +00:00
compileall.py Fix compileall.py so that it fails on SyntaxErrors 2001-04-18 01:20:21 +00:00
copy.py Fix for SF bug ##497426: can't deepcopy recursive new objects 2001-12-28 21:33:22 +00:00
copy_reg.py _reduce(): Avoid infinite recursion in the pickler when self.__class__ 2001-12-27 16:27:28 +00:00
dbhash.py Fix bug #422702: Make flag argument to open optional, and document it that way. 2001-06-05 05:33:19 +00:00
difflib.py Whitespace normalization. 2001-10-04 05:36:56 +00:00
dircache.py Whitespace normalization. 2001-03-16 08:29:48 +00:00
dis.py Add opcodes for floor division and true division (PEP 238) 2001-08-29 18:02:21 +00:00
doctest.py SF bug [#473864] doctest expects spurios space. 2001-10-23 02:21:52 +00:00
dospath.py SF bug [#469732] os.path.walk docstring inconsistent. 2001-10-10 04:16:20 +00:00
dumbdbm.py forward-patch from release21-maint branch: 2001-12-21 05:13:37 +00:00
filecmp.py more __all__ updates 2001-01-20 23:34:12 +00:00
fileinput.py SF patch #474590 -- RISC OS support 2001-10-24 20:42:55 +00:00
fnmatch.py Patch #409973: Speedup glob.glob, add fnmatch.filter. 2001-06-06 06:24:38 +00:00
formatter.py Remove empty __init__ (PyChecker) 2001-08-13 14:55:17 +00:00
fpformat.py more __all__ updates 2001-01-20 23:34:12 +00:00
ftplib.py Update the docstring too. :-) 2001-12-28 20:54:55 +00:00
getopt.py Wrapped a long line. 2001-12-12 06:20:34 +00:00
getpass.py win_getpass(): if sys.stdin is not sys.__stdin__, use 2001-08-30 15:07:44 +00:00
gettext.py Add a per-message fallback mechanism for translations. 2002-01-11 06:58:49 +00:00
glob.py Patch #409973: Speedup glob.glob, add fnmatch.filter. 2001-06-06 06:24:38 +00:00
gopherlib.py Remove unused variable (PyChecker) 2001-08-13 14:52:37 +00:00
gzip.py "f" should be "self"; reported by Neal Norwitz. 2001-10-13 18:33:51 +00:00
hmac.py Whitespace normalization. 2001-11-13 21:51:26 +00:00
htmlentitydefs.py removed __all__ from several modules 2001-02-18 03:30:53 +00:00
htmllib.py int() of a string is only expected to through ValueError, so do not use 2001-05-11 18:45:52 +00:00
httplib.py Somebody checked in a version of httplib that doesn't even compile -- 2001-10-11 18:15:51 +00:00
ihooks.py String method conversion. 2001-02-09 10:18:37 +00:00
imaplib.py Time2Internaldate(): Call isinstance() once for each of the type tests 2002-01-05 17:17:09 +00:00
imghdr.py a few more modules get __all__ 2001-01-24 06:27:27 +00:00
imputil.py Added docstring by Neal Norwitz. This closes SF bug #450979. 2001-09-04 18:39:45 +00:00
inspect.py Get rid of __defined__ and tp_defined -- there's no need to 2001-10-15 22:03:32 +00:00
keyword.py Updated keyword.py for "yield". 2001-06-19 00:26:25 +00:00
knee.py String method conversion. 2001-02-09 09:48:45 +00:00
linecache.py Patch from Gordon McMillan. 2001-05-29 04:27:01 +00:00
locale.py Remove some dead code (PyChecker) 2001-08-13 14:50:44 +00:00
macpath.py SF bug [#469732] os.path.walk docstring inconsistent. 2001-10-10 04:16:20 +00:00
macurl2path.py String method conversion. 2001-02-09 09:48:45 +00:00
mailbox.py SF bug #461073: mailbox __iter__ bug, by Andrew Dalke. 2001-09-13 01:29:13 +00:00
mailcap.py Opening a file for reading can raise IOError, so only catch that. 2001-05-11 18:47:54 +00:00
markupbase.py Re-arrange things and remove some unused variables/imports to keep pychecker 2001-10-26 18:02:28 +00:00
mhlib.py Folder.getlast(): avoid PyChecker warning. 2001-10-17 05:59:26 +00:00
mimetools.py Do not hide a failure to create a temporary file; if it fails the work 2001-02-23 20:04:54 +00:00
mimetypes.py Separate the script portion from the library portion; everything that 2001-12-05 15:58:29 +00:00
mimify.py Fix for SF bug #425868. 2001-07-04 10:15:58 +00:00
multifile.py Martijn Pieters convinced me that when readline() strips the trailing 2001-10-05 21:22:21 +00:00
mutex.py removed __all__ from several modules 2001-02-18 03:30:53 +00:00
netrc.py Fix typo in attribute name (file should be filename) found by 2001-04-15 12:51:42 +00:00
nntplib.py changed misleading argument name 2001-10-18 20:58:25 +00:00
ntpath.py Allow abspath to still do something sensisble if the nt module can not be imported. 2002-01-17 00:44:26 +00:00
nturl2path.py Use string.ascii_letters instead of string.letters. 2001-07-20 18:52:02 +00:00
os.py Whitespace normalization. 2001-10-30 05:56:40 +00:00
pdb.doc
pdb.py SF bug #131560: pdb imports 'repr', causing name collision 2001-02-09 23:28:07 +00:00
pickle.py Pickler.save(): Fix for SF bug #494904: Cannot pickle a class with a 2001-12-19 16:55:02 +00:00
pipes.py Patch #444359: Remove unused imports. 2001-08-02 07:15:29 +00:00
popen2.py Patch #487784: Support Unicode commands in popen3/4 handling on UNIX. 2001-12-02 13:32:15 +00:00
poplib.py Re-enabled debugging prints in poplib & documented the set_debuglevel() 2001-12-05 22:37:21 +00:00
posixfile.py Add a warning to the posixfile module stating that it will go away. 2001-10-24 22:03:35 +00:00
posixpath.py SF bug [#469732] os.path.walk docstring inconsistent. 2001-10-10 04:16:20 +00:00
pprint.py __format(): Applied SF patch #482003 by Skip to fix multiline dict 2001-11-28 05:49:39 +00:00
pre.py Clean up a bare except where we only expect to catch pcre.error. 2001-05-11 19:20:17 +00:00
profile.doc
profile.py Added a missing period at the end of an error message. 2001-12-05 22:27:47 +00:00
pstats.py Put the deprecated .ignore() method back where it was. 2001-10-08 06:28:18 +00:00
pty.py Whitespace normalization. 2001-05-29 06:06:54 +00:00
py_compile.py __all__ for several more modules 2001-02-12 02:00:42 +00:00
pyclbr.py SF bug #473525 pyclbr broken 2001-10-24 20:22:40 +00:00
pydoc.py SF patch #474485: pydoc generates some bad html, from Rich Salz. 2001-10-31 04:20:26 +00:00
quopri.py Patch 471400: escape single-dot lines; by Jason Hildebrand. 2001-10-15 18:44:26 +00:00
random.py SF patch 483059: Avoid use of eval() in random.py, from Finn Bock. 2001-11-25 21:12:43 +00:00
re.py Added docstrings by Neal Norwitz. This closes SF bug #450980. 2001-09-04 19:10:20 +00:00
reconvert.py Suppress the warning about regex here. 2001-09-04 15:18:54 +00:00
regex_syntax.py removed __all__ from several modules 2001-02-18 03:30:53 +00:00
regsub.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
repr.py Rename "dictionary" (type and constructor) to "dict". 2001-10-29 22:25:45 +00:00
rexec.py Ignore execfile() return value; reported by Neal Norwitz. 2001-10-13 18:34:42 +00:00
rfc822.py SF patch #495358 (Artur Zaprzala): rfc822.AddressList and "<>" address 2001-12-20 15:54:48 +00:00
rlcompleter.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
robotparser.py Remove unused import (PyChecker) 2001-08-13 14:43:43 +00:00
sched.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
sgmllib.py Re-arrange things and remove some unused variables/imports to keep pychecker 2001-10-26 18:02:28 +00:00
shelve.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
shlex.py Unused variable (caught by PyChecker) removed. 2001-04-17 17:20:19 +00:00
shutil.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
site.py Don't use Latex \code{...} in docstrings. 2001-12-17 16:07:06 +00:00
smtpd.py Two bug fixes for problems reported by Sverre: 2001-11-04 03:04:25 +00:00
smtplib.py send(), ehlo(): Integrate patch #487310 by Fazal Majid. Consistently 2001-12-14 20:34:20 +00:00
sndhdr.py Amazing. This would open the sound file in text mode. Fixed. 2001-07-31 06:27:07 +00:00
socket.py Move the helper class _closedsocket *into* the _socketobject class. 2001-12-18 22:22:25 +00:00
sre.py added finditer sanity check 2001-10-28 20:15:40 +00:00
sre_compile.py Added docstrings by Neal Norwitz. This closes SF bug #450980. 2001-09-04 19:10:20 +00:00
sre_constants.py Added docstrings by Neal Norwitz. This closes SF bug #450980. 2001-09-04 19:10:20 +00:00
sre_parse.py bug #133283, #477728, #483789, #490573 2001-12-09 16:13:15 +00:00
stat.py removed __all__ from several modules 2001-02-18 03:30:53 +00:00
statcache.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
statvfs.py removed __all__ from several modules 2001-02-18 03:30:53 +00:00
string.py Added the constants ascii_letters, ascii_lowercase, and ascii_uppercase 2001-07-20 18:38:26 +00:00
stringold.py Nuke accurate but confusing and unhelpful comments about split vs splitfields. 2001-02-09 20:18:41 +00:00
sunau.py Whitespace normalization. 2001-01-15 01:36:40 +00:00
sunaudio.py Whitespace normalization. 2001-01-15 01:36:40 +00:00
symbol.py track addition of testlist_safe to Grammar 2001-10-17 13:13:04 +00:00
symtable.py Remove now-unnecessary "from __future__ import nested_scopes" stmts. 2001-07-12 22:36:02 +00:00
tabnanny.py Add the NannyNag exception class and the process_tokens() function to 2001-08-07 17:19:25 +00:00
telnetlib.py Only close sockets if they have been created. Reported by Blake Winton. 2001-10-07 08:53:32 +00:00
tempfile.py SF bug #509805 tempfile.gettempdir not threadsafe 2002-01-28 23:11:23 +00:00
threading.py Thread.__bootstrap(): ignore exceptions in the self.__delete() call in 2001-12-28 22:07:09 +00:00
toaiff.py Capture exception message (PyChecker) 2001-08-13 14:40:47 +00:00
token.py Remove redundant 'import string' (PyChecker). 2001-08-13 15:48:06 +00:00
tokenize.py SF patch #455966: Allow leading 0 in float/imag literals. 2001-08-30 20:51:59 +00:00
traceback.py SF bug 431772: traceback.print_exc() causes traceback 2001-06-10 18:58:26 +00:00
tty.py final round of __all__ lists (I hope) - skipped urllib2 because Moshe may be 2001-03-01 04:27:19 +00:00
types.py Patch #487455: make types.StringTypes a tuple. 2001-12-02 12:08:06 +00:00
tzparse.py Add a deprecation warning to this module. 2001-03-20 18:36:48 +00:00
unittest.py Synch with pyunit CVS: 2001-12-17 10:13:17 +00:00
urllib.py SF patch #490515 (Joe A) urllib.open_https() protocol issue 2001-12-08 17:09:07 +00:00
urllib2.py Fix SF bug 468948 & 451295: urllib2 authentication problems 2001-11-09 16:46:51 +00:00
urlparse.py Fix parsing of parameters from a URL; urlparse() did not check that it only 2001-11-16 02:52:57 +00:00
user.py
uu.py decode(): Raise a uu.Error if no out_file is given but the file 2001-08-17 19:59:34 +00:00
warnings.py Allow for the possibility that globals['__name__'] does not exist; 2001-08-31 17:46:35 +00:00
wave.py The first batch of changes recommended by the fixdiv tool. These are 2001-09-04 19:14:14 +00:00
weakref.py WeakKeyDictionary.has_key(): If the key being tested is not weakly 2001-11-06 16:36:53 +00:00
webbrowser.py Fix webbrowser.py security bug: be more careful about what we pass to 2002-01-07 15:29:01 +00:00
whichdb.py SF patch #474590 -- RISC OS support 2001-10-24 20:42:55 +00:00
whrandom.py Whitespace normalization. Top level of Lib now fixed-point for reindent.py! 2001-01-15 03:34:38 +00:00
xdrlib.py Use (c)StringIO for collecting bytes. Fixes bug #451622. 2001-08-16 17:06:44 +00:00
xmllib.py Moved clearing of "literal" flag. The flag is set in setliteral which 2001-03-14 17:03:30 +00:00
xmlrpclib.py partial merge with current pythonware codebase: 2001-12-19 21:40:04 +00:00
zipfile.py SF bug #488514: -Qnew needs work 2001-12-06 06:23:26 +00:00