[Python-checkins] cpython (3.3): Fix issue #17707: multiprocessing.Queue's get() method does not block for short

giampaolo.rodola python-checkins at python.org
Wed Apr 17 13:10:10 CEST 2013


http://hg.python.org/cpython/rev/65623d7dc76e
changeset:   83422:65623d7dc76e
branch:      3.3
parent:      83420:017891cc973f
user:        Giampaolo Rodola' <g.rodola at gmail.com>
date:        Wed Apr 17 13:08:59 2013 +0200
summary:
  Fix issue #17707: multiprocessing.Queue's get() method does not block for short timeouts.

files:
  Lib/multiprocessing/connection.py |  2 +-
  Lib/test/test_multiprocessing.py  |  7 +++++++
  Misc/NEWS                         |  3 +++
  3 files changed, 11 insertions(+), 1 deletions(-)


diff --git a/Lib/multiprocessing/connection.py b/Lib/multiprocessing/connection.py
--- a/Lib/multiprocessing/connection.py
+++ b/Lib/multiprocessing/connection.py
@@ -865,7 +865,7 @@
     if hasattr(select, 'poll'):
         def _poll(fds, timeout):
             if timeout is not None:
-                timeout = int(timeout) * 1000  # timeout is in milliseconds
+                timeout = int(timeout * 1000)  # timeout is in milliseconds
             fd_map = {}
             pollster = select.poll()
             for fd in fds:
diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py
--- a/Lib/test/test_multiprocessing.py
+++ b/Lib/test/test_multiprocessing.py
@@ -698,6 +698,13 @@
         for p in workers:
             p.join()
 
+    def test_timeout(self):
+        q = multiprocessing.Queue()
+        start = time.time()
+        self.assertRaises(pyqueue.Empty, q.get, True, 0.2)
+        delta = time.time() - start
+        self.assertGreaterEqual(delta, 0.19)
+
 #
 #
 #
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -29,6 +29,9 @@
 Library
 -------
 
+- Issue #17707: multiprocessing.Queue's get() method does not block for short
+  timeouts.
+
 - Issue #17012: shutil.which() no longer fallbacks to the PATH environment
   variable if empty path argument is specified.  Patch by Serhiy Storchaka.
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list