From: Gregory P. Smith Date: Tue, 4 Jan 2011 18:43:54 +0000 (+0000) Subject: backport fix from r87741 related to the issue6643 fix in r87727. X-Git-Tag: v2.7.2rc1~402 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c87620286d0b4d7c24cd617ceb8ffd32994f0feb;p=python backport fix from r87741 related to the issue6643 fix in r87727. --- diff --git a/Lib/threading.py b/Lib/threading.py index b05597d8f2..6a06feb635 100644 --- a/Lib/threading.py +++ b/Lib/threading.py @@ -456,7 +456,8 @@ class Thread(_Verbose): def _reset_internal_locks(self): # private! Called by _after_fork() to reset our internal locks as # they may be in an invalid state leading to a deadlock or crash. - self.__block.__init__() + if hasattr(self, '_Thread__block'): # DummyThread deletes self.__block + self.__block.__init__() self.__started._reset_internal_locks() @property @@ -884,7 +885,8 @@ def _after_fork(): thread._Thread__ident = ident # Any condition variables hanging off of the active thread may # be in an invalid state, so we reinitialize them. - thread._reset_internal_locks() + if hasattr(thread, '_reset_internal_locks'): + thread._reset_internal_locks() new_active[ident] = thread else: # All the others are already stopped.