Commit 4b6b7f15 authored by Brett Cannon's avatar Brett Cannon

Remove calls to currentThread() in _Condition methods that were side-effect.

Side-effects were deemed unnecessary and were causing problems at shutdown
time when threads were catching exceptions at start time and then triggering
exceptions trying to call currentThread() after gc'ed.  Masked the initial
exception which was deemed bad.

Fixes bug #754449 .
parent 3fd500b4
...@@ -193,7 +193,6 @@ class _Condition(_Verbose): ...@@ -193,7 +193,6 @@ class _Condition(_Verbose):
return True return True
def wait(self, timeout=None): def wait(self, timeout=None):
currentThread() # for side-effect
assert self._is_owned(), "wait() of un-acquire()d lock" assert self._is_owned(), "wait() of un-acquire()d lock"
waiter = _allocate_lock() waiter = _allocate_lock()
waiter.acquire() waiter.acquire()
...@@ -235,7 +234,6 @@ class _Condition(_Verbose): ...@@ -235,7 +234,6 @@ class _Condition(_Verbose):
self._acquire_restore(saved_state) self._acquire_restore(saved_state)
def notify(self, n=1): def notify(self, n=1):
currentThread() # for side-effect
assert self._is_owned(), "notify() of un-acquire()d lock" assert self._is_owned(), "notify() of un-acquire()d lock"
__waiters = self.__waiters __waiters = self.__waiters
waiters = __waiters[:n] waiters = __waiters[:n]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment