Issue #13502: threading: Fix a race condition in Event.wait() that made it

return False when the event was set and cleared right after.
This commit is contained in:
Charles-François Natali 2012-01-07 18:26:39 +01:00
commit 61d28d6a74
4 changed files with 27 additions and 5 deletions

View file

@ -408,9 +408,10 @@ class Event(_Verbose):
def wait(self, timeout=None):
self._cond.acquire()
try:
if not self._flag:
self._cond.wait(timeout)
return self._flag
signaled = self._flag
if not signaled:
signaled = self._cond.wait(timeout)
return signaled
finally:
self._cond.release()