cpython/Lib
Jeffrey Yasskin 69e1309fd4 Thread.start() used sleep(0.000001) to make sure it didn't return before the
new thread had started. At least on my MacBook Pro, that wound up sleeping for
a full 10ms (probably 1 jiffy). By using an Event instead, we can be absolutely
certain that the thread has started, and return more quickly (217us).

Before:
$  ./python.exe -m timeit -s 'from threading import Thread'  't = Thread(); t.start(); t.join()'
100 loops, best of 3: 10.3 msec per loop
$  ./python.exe -m timeit -s 'from threading import Thread; t = Thread()'  't.isAlive()'
1000000 loops, best of 3: 0.47 usec per loop

After:
$  ./python.exe -m timeit -s 'from threading import Thread'  't = Thread(); t.start(); t.join()'
1000 loops, best of 3: 217 usec per loop
$  ./python.exe -m timeit -s 'from threading import Thread; t = Thread()'  't.isAlive()'
1000000 loops, best of 3: 0.86 usec per loop

To be fair, the 10ms isn't CPU time, and other threads including the spawned
one get to run during it. There are also some slightly more complicated ways to
get back the .4us in isAlive() if we want.
2008-02-28 06:09:19 +00:00
..
bsddb Create a db_home directory with a unique name so multiple users can 2008-02-24 18:47:03 +00:00
compiler Issue 2117. Update compiler module to handle class decorators. 2008-02-25 18:06:00 +00:00
ctypes Patch #2167 from calvin: Remove unused imports 2008-02-23 17:40:11 +00:00
curses Use file descriptor for real stdout 2008-02-25 16:29:58 +00:00
distutils Patch #2167 from calvin: Remove unused imports 2008-02-23 17:40:11 +00:00
email Patch #2167 from calvin: Remove unused imports 2008-02-23 17:40:11 +00:00
encodings Fixed bug #1915: Python compiles with --enable-unicode=no again. However several extension methods and modules do not work without unicode support. 2008-01-23 14:20:50 +00:00
hotshot Patch #2167 from calvin: Remove unused imports 2008-02-23 17:40:11 +00:00
idlelib Patch #2167 from calvin: Remove unused imports 2008-02-23 17:40:11 +00:00
lib-tk Patch #2167 from calvin: Remove unused imports 2008-02-23 17:40:11 +00:00
logging Patch #2167 from calvin: Remove unused imports 2008-02-23 17:40:11 +00:00
msilib
plat-aix3
plat-aix4
plat-atheos
plat-beos5
plat-darwin
plat-freebsd4
plat-freebsd5
plat-freebsd6 - Add support for FreeBSD 8 which is recently forked from FreeBSD 7. 2007-10-28 11:19:02 +00:00
plat-freebsd7 - Add support for FreeBSD 8 which is recently forked from FreeBSD 7. 2007-10-28 11:19:02 +00:00
plat-freebsd8 - Add support for FreeBSD 8 which is recently forked from FreeBSD 7. 2007-10-28 11:19:02 +00:00
plat-generic
plat-irix5
plat-irix6
plat-linux2
plat-mac Patch #2167 from calvin: Remove unused imports 2008-02-23 17:40:11 +00:00
plat-netbsd1
plat-next3
plat-os2emx
plat-riscos Patch #2167 from calvin: Remove unused imports 2008-02-23 17:40:11 +00:00
plat-sunos5
plat-unixware7
site-packages
sqlite3 Patch #2167 from calvin: Remove unused imports 2008-02-23 17:40:11 +00:00
test Speed test_socketserver up from 28.739s to 0.226s, simplify the logic, and make 2008-02-28 05:53:18 +00:00
wsgiref
xml #1433694: minidom's .normalize() failed to set .nextSibling for last element. 2008-02-23 17:10:46 +00:00
__future__.py
__phello__.foo.py
_abcoll.py Metaclass declaration is inherited 2008-02-09 10:04:19 +00:00
_LWPCookieJar.py
_MozillaCookieJar.py
_strptime.py
_threading_local.py
abc.py Move abc._Abstract into object by adding a new flag Py_TPFLAGS_IS_ABSTRACT, 2008-02-28 04:45:36 +00:00
aifc.py
anydbm.py
asynchat.py
asyncore.py
atexit.py
audiodev.py
base64.py
BaseHTTPServer.py #1492: allow overriding BaseHTTPServer's content type for error messages. 2008-02-23 15:02:28 +00:00
Bastion.py
bdb.py
binhex.py
bisect.py
calendar.py Fix typo in docstring for Calendar.itermonthdays(). 2008-02-07 19:57:32 +00:00
cgi.py Patch #1541463: optimize performance of cgi.FieldStorage operations. 2007-09-20 16:06:07 +00:00
CGIHTTPServer.py
cgitb.py
chunk.py
cmd.py
code.py
codecs.py
codeop.py
collections.py Neaten-up the named tuple docs 2008-01-10 23:00:01 +00:00
colorsys.py
commands.py
compileall.py
ConfigParser.py Issue 1781. Now ConfigParser.add_section does not let you add a 2008-02-23 12:46:10 +00:00
contextlib.py Fix for bug 1705170 - contextmanager swallowing StopIteration (2.5 backport candidate) 2007-11-02 10:09:12 +00:00
Cookie.py
cookielib.py
copy.py
copy_reg.py Removed uses of dict.has_key() from distutils, and uses of 2008-02-21 18:18:37 +00:00
cProfile.py
csv.py
dbhash.py
decimal.py Remove duplicate 'import re' in decimal.py 2008-02-24 18:12:36 +00:00
difflib.py Improve usability of the SequenceMatcher by returning named tuples describing match ranges. 2008-01-11 03:20:54 +00:00
dircache.py
dis.py
doctest.py Doctest results return a named tuple for readability 2008-01-11 01:25:54 +00:00
DocXMLRPCServer.py Update PEP URL. 2008-02-05 16:06:57 +00:00
dumbdbm.py
dummy_thread.py
dummy_threading.py
filecmp.py
fileinput.py
fnmatch.py
formatter.py #1726198: replace while 1: fp.readline() with file iteration. 2008-01-21 17:22:06 +00:00
fpformat.py
fractions.py Change simple instances (in Fraction) of self.numerator and self.denominator to 2008-02-14 07:49:25 +00:00
ftplib.py docstring and comment updates suggested by Giampaolo Rodola' 2008-01-22 23:15:34 +00:00
functools.py Patch # 1739906 by Christian Heimes -- add reduce to functools (importing 2007-08-27 20:51:00 +00:00
genericpath.py
getopt.py
getpass.py
gettext.py
glob.py
gzip.py
hashlib.py email address update 2007-09-09 20:25:00 +00:00
heapq.py
hmac.py Fixes Issue 1385: The hmac module now computes the correct hmac when using 2007-11-06 00:19:03 +00:00
htmlentitydefs.py
htmllib.py
HTMLParser.py
httplib.py #1627: httplib now ignores negative Content-Length headers. 2008-02-24 00:14:24 +00:00
ihooks.py
imaplib.py #1389051: IMAP module tries to read entire message in one chunk. Patch by Fredrik Lundh. 2008-02-23 19:02:33 +00:00
imghdr.py
imputil.py
inspect.py Issue #1916. Added isgenerator() and isgeneratorfunction() to 2008-02-18 03:43:43 +00:00
keyword.py #1726198: replace while 1: fp.readline() with file iteration. 2008-01-21 17:22:06 +00:00
linecache.py
locale.py
macpath.py
macurl2path.py
mailbox.py Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage. 2008-01-19 20:12:04 +00:00
mailcap.py
markupbase.py
md5.py email address update 2007-09-09 20:25:00 +00:00
mhlib.py
mimetools.py
mimetypes.py Patch 1353 by Jacob Winther. 2007-10-29 20:52:45 +00:00
MimeWriter.py
mimify.py
modulefinder.py Replaced import of the 'new' module with 'types' module and added a deprecation warning to the 'new' module. 2007-11-27 21:34:01 +00:00
multifile.py
mutex.py
netrc.py
new.py Expose Py_Py3kWarningFlag as sys.py3kwarning as discussed in #1504 2007-11-27 23:16:44 +00:00
nntplib.py
ntpath.py Patch #2167 from calvin: Remove unused imports 2008-02-23 17:40:11 +00:00
nturl2path.py
numbers.py Update notes on Decimal. 2008-02-14 01:08:02 +00:00
opcode.py Give meaning to the oparg for BUILD_MAP: estimated size of the dictionary. 2007-12-18 21:24:09 +00:00
optparse.py Change isbasestring function as discussed on the cvs list a while ago 2008-01-27 19:01:45 +00:00
os.py Moved the errno import from inside the functions to the 2007-11-27 18:50:12 +00:00
os2emxpath.py
pdb.doc
pdb.py test_doctest fails since r59984. 2008-01-15 21:25:11 +00:00
pickle.py
pickletools.py Complete an open todo on pickletools -- add a pickle optimizer. 2008-02-10 20:35:16 +00:00
pipes.py Patch #1680959: add test suite for pipes module. 2007-08-30 10:38:56 +00:00
pkgutil.py
platform.py issue1082: Fixing platform and system for Vista. 2007-09-17 20:53:21 +00:00
plistlib.py Follow PEP 8 in module docstring. 2008-01-21 20:18:04 +00:00
popen2.py Use os.closerange() in popen2. 2008-02-23 22:09:24 +00:00
poplib.py More work on SSL support. 2007-09-10 21:51:02 +00:00
posixfile.py Enable platform-specific tweaks for FreeBSD 8 (exactly same to FreeBSD 7's yet) 2007-10-28 12:38:09 +00:00
posixpath.py #1742: don't raise exception on os.path.relpath("a", "a"), but return os.curdir. 2008-01-06 14:27:15 +00:00
pprint.py Shorter pprint's for empty sets and frozensets. Fix indentation of frozensets. Add tests including two complex data structures. 2008-01-24 21:47:56 +00:00
profile.py
pstats.py #1269: fix a bug in pstats.add_callers() and add a unit test file for pstats. 2008-01-21 10:24:59 +00:00
pty.py
py_compile.py
pyclbr.py
pydoc.py #2133: fix HTML color spec. 2008-02-17 21:18:55 +00:00
Queue.py Add queues will alternative fetch orders (priority based and stack based). 2008-01-16 23:40:45 +00:00
quopri.py
random.py Issue #1727780: Support loading pickles of random.Random objects created 2007-12-03 19:20:02 +00:00
re.py In the experimental 'Scanner' feature, the group count was set wrong. 2008-02-05 17:32:15 +00:00
repr.py Bug #1153: repr.repr() now doesn't require set and dictionary items 2007-09-12 19:00:07 +00:00
rexec.py
rfc822.py
rlcompleter.py
robotparser.py fixes 813986 2007-08-28 23:22:52 +00:00
runpy.py Try to make command line error messages from runpy easier to understand (and suppress traceback cruft from the implicitly invoked runpy machinery) 2008-02-22 10:54:06 +00:00
sched.py Issue #1861: Add read-only attribute listing upcoming events in the order they will be run. 2008-01-17 19:31:38 +00:00
sets.py
sgmllib.py
sha.py email address update 2007-09-09 20:25:00 +00:00
shelve.py Revert part of r60927 which made invalid assumptions about the API offered by db modules. 2008-02-25 23:17:41 +00:00
shlex.py
shutil.py #1669: don't allow shutil.rmtree() to be called on a symlink. 2008-01-20 14:17:42 +00:00
SimpleHTTPServer.py Patch #2167 from calvin: Remove unused imports 2008-02-23 17:40:11 +00:00
SimpleXMLRPCServer.py
site.py Add the correct build dir when building with pydebug. 2008-01-21 21:19:07 +00:00
smtpd.py Issue 1307 by Derek Shockey, fox the same bug for RCPT. 2007-10-23 19:25:41 +00:00
smtplib.py Issue 1776581. Minor corrections to smtplib, and two small tests. 2008-02-23 12:27:17 +00:00
sndhdr.py
socket.py #1389051, #1092502: fix excessively large allocations when using read() on a socket 2008-02-23 19:28:58 +00:00
SocketServer.py Add diagnostic message to help figure-out why SocketServer tests occasionally crash 2008-02-14 09:32:45 +00:00
sre.py
sre_compile.py Issue #1700, reported by Nguyen Quan Son, fix by Fredruk Lundh: 2008-01-03 19:12:44 +00:00
sre_constants.py
sre_parse.py
ssl.py Patch #2167 from calvin: Remove unused imports 2008-02-23 17:40:11 +00:00
stat.py
statvfs.py
string.py Backport of PEP 3101, Advanced String Formatting, from py3k. 2008-02-17 19:46:49 +00:00
StringIO.py
stringold.py
stringprep.py
struct.py Added _struct._clearcache() for regression tests 2008-01-04 02:54:42 +00:00
subprocess.py Fix issue 1300: Quote command line arguments that contain a '|' character in 2008-01-19 22:49:37 +00:00
sunau.py
sunaudio.py
symbol.py Patch #1759: Backport of PEP 3129 class decorators 2008-02-23 15:01:05 +00:00
symtable.py
tabnanny.py
tarfile.py Issue #2004: Use mode 0700 for temporary directories and default 2008-02-05 11:51:40 +00:00
telnetlib.py
tempfile.py Issue 2021: Allow NamedTemporaryFile and SpooledTemporaryFile to be used as context managers. (The NamedTemporaryFile fix should be considered for backporting to 2.5) 2008-02-09 15:28:09 +00:00
textwrap.py Fix #1146: TextWrap vs words 1-character shorter than the width. 2008-01-19 19:48:19 +00:00
this.py
threading.py Thread.start() used sleep(0.000001) to make sure it didn't return before the 2008-02-28 06:09:19 +00:00
timeit.py
toaiff.py
token.py Issue 2117. Update compiler module to handle class decorators. 2008-02-25 18:06:00 +00:00
tokenize.py Fix #1679: "0x" was taken as a valid integer literal. 2008-01-19 19:27:05 +00:00
trace.py Add a timing flag to Trace so you can see where slowness occurs 2008-02-26 08:21:28 +00:00
traceback.py
tty.py
types.py
unittest.py Backport PEP 3141 from the py3k branch to the trunk. This includes r50877 (just 2008-01-03 02:21:52 +00:00
urllib.py #1664522: in urllib, don't read non-existing directories in ftp mode, 2008-01-20 12:18:17 +00:00
urllib2.py Fixes Issue 1401. When redirected, a possible POST get converted 2008-02-07 19:06:52 +00:00
urlparse.py #1726198: replace while 1: fp.readline() with file iteration. 2008-01-21 17:22:06 +00:00
user.py
UserDict.py Update more instances of has_key(). 2008-02-21 19:24:53 +00:00
UserList.py No need to register classes that already inherit from ABCs. 2008-02-11 18:51:08 +00:00
UserString.py No need to register subclass of ABCs. 2008-02-14 19:30:30 +00:00
uu.py
uuid.py
warnings.py Expose Py_Py3kWarningFlag as sys.py3kwarning as discussed in #1504 2007-11-27 23:16:44 +00:00
wave.py
weakref.py
webbrowser.py
whichdb.py
wsgiref.egg-info
xdrlib.py
xmllib.py
xmlrpclib.py #1330538: Improve comparison of xmlrpclib.DateTime and datetime instances. 2008-02-23 16:23:05 +00:00
zipfile.py Document that zipfile decryption is insanely slow and fix a typo and 2008-01-20 01:32:00 +00:00