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:24:56 +01:00
parent b52e7a9a36
commit ded0348c08
4 changed files with 27 additions and 5 deletions

View file

@ -418,9 +418,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()