issue6643 - Two locks held within the threading module on each thread instance
needed to be reinitialized after fork(). Adds tests to confirm that they are
and that a potential deadlock and crasher bug are fixed (platform dependant).
diff --git a/Lib/threading.py b/Lib/threading.py
index 01c27b8..b586bb0 100644
--- a/Lib/threading.py
+++ b/Lib/threading.py
@@ -1064,6 +1064,10 @@
# its new value since it can have changed.
ident = _get_ident()
thread._ident = ident
+ # Any condition variables hanging off of the active thread may
+ # be in an invalid state, so we reinitialize them.
+ thread._block.__init__()
+ thread._started._cond.__init__()
new_active[ident] = thread
else:
# All the others are already stopped.