diff --git a/Lib/threading.py b/Lib/threading.py --- a/Lib/threading.py +++ b/Lib/threading.py @@ -323,14 +323,14 @@ class Event: self._cond.release() def wait(self, timeout=None): - self._cond.acquire() - try: - signaled = self._flag - if not signaled: + signaled = self._flag + if not signaled: + self._cond.acquire() + try: signaled = self._cond.wait(timeout) - return signaled - finally: - self._cond.release() + finally: + self._cond.release() + return signaled # A barrier class. Inspired in part by the pthread_barrier_* api and