Backport of r66275/r66274 from trunk/py3k. This is the last bit of
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.
This commit is contained in:
parent
6477350b53
commit
34c688129f
|
@ -781,9 +781,12 @@ def _after_fork():
|
||||||
current = currentThread()
|
current = currentThread()
|
||||||
_active_limbo_lock.acquire()
|
_active_limbo_lock.acquire()
|
||||||
try:
|
try:
|
||||||
for ident, thread in _active.iteritems():
|
for thread in _active.itervalues():
|
||||||
if thread is current:
|
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
|
new_active[ident] = thread
|
||||||
else:
|
else:
|
||||||
# All the others are already stopped.
|
# All the others are already stopped.
|
||||||
|
|
Loading…
Reference in New Issue