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

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


http://hg.python.org/cpython/rev/87882c96d138
changeset:   83423:87882c96d138
parent:      83421:3fda81465102
user:        Giampaolo Rodola' <g.rodola at gmail.com>
date:        Wed Apr 17 13:12:27 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
@@ -862,7 +862,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
@@ -699,6 +699,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
@@ -42,6 +42,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