From: Georg Brandl Date: Tue, 31 Mar 2009 20:41:08 +0000 (+0000) Subject: #1674032: return value of flag from Event.wait(). OKed by Guido. X-Git-Tag: v2.7a1~1678 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ef660e8e50c607c8abcb02274decdcb6eff1d1b8;p=python #1674032: return value of flag from Event.wait(). OKed by Guido. --- diff --git a/Doc/library/threading.rst b/Doc/library/threading.rst index 69593ae7b1..efd0cff7c3 100644 --- a/Doc/library/threading.rst +++ b/Doc/library/threading.rst @@ -696,14 +696,20 @@ An event object manages an internal flag that can be set to true with the .. method:: Event.wait([timeout]) - Block until the internal flag is true. If the internal flag is true on entry, - return immediately. Otherwise, block until another thread calls :meth:`set` to - set the flag to true, or until the optional timeout occurs. + Block until the internal flag is true. If the internal flag is true on entry, + return immediately. Otherwise, block until another thread calls :meth:`set` + to set the flag to true, or until the optional timeout occurs. When the timeout argument is present and not ``None``, it should be a floating point number specifying a timeout for the operation in seconds (or fractions thereof). + This method returns the internal flag on exit, so it will always return + ``True`` except if a timeout is given and the operation times out. + + .. versionchanged:: 2.7 + Previously, the method always returned ``None``. + .. _timer-objects: diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py index c8f9cac8f9..cb6f6d2ae9 100644 --- a/Lib/test/test_threading.py +++ b/Lib/test/test_threading.py @@ -186,7 +186,8 @@ class ThreadTests(unittest.TestCase): # Now raise an exception in the worker thread. if verbose: print " waiting for worker thread to get started" - worker_started.wait() + ret = worker_started.wait() + self.assertTrue(ret) if verbose: print " verifying worker hasn't exited" self.assert_(not t.finished) diff --git a/Lib/threading.py b/Lib/threading.py index a776c66752..cc2be1b860 100644 --- a/Lib/threading.py +++ b/Lib/threading.py @@ -391,6 +391,7 @@ class _Event(_Verbose): try: if not self.__flag: self.__cond.wait(timeout) + return self.__flag finally: self.__cond.release()