]> granicus.if.org Git - python/commitdiff
Backport of r66275/r66274 from trunk/py3k. This is the last bit of
authorGregory P. Smith <greg@mad-scientist.com>
Sun, 7 Sep 2008 01:03:35 +0000 (01:03 +0000)
committerGregory P. Smith <greg@mad-scientist.com>
Sun, 7 Sep 2008 01:03:35 +0000 (01:03 +0000)
the fix for issue 874900 to fix the use of the threading module in a
post-fork python process.  A NEWS entry for this already exists with
the previous Lib/threading commit for this bug.

Lib/threading.py

index 1ecc06eb339ab49e0fde93fb450b86d66d7f2468..f2c6b3d56a6d6380b0c54029b86989b2279fe174 100644 (file)
@@ -781,9 +781,12 @@ def _after_fork():
     current = currentThread()
     _active_limbo_lock.acquire()
     try:
-        for ident, thread in _active.iteritems():
+        for thread in _active.itervalues():
             if thread is current:
-                # There is only one active thread.
+                # There is only one active thread. We reset the ident to
+                # its new value since it can have changed.
+                ident = _get_ident()
+                thread._Thread__ident = ident
                 new_active[ident] = thread
             else:
                 # All the others are already stopped.