summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiampaolo Rodola' <g.rodola@gmail.com>2013-04-17 11:12:27 (GMT)
committerGiampaolo Rodola' <g.rodola@gmail.com>2013-04-17 11:12:27 (GMT)
commit308307190fa6f81c93ef9bb9d95457d14a6ca098 (patch)
tree26cb44919665dc03933e8c8f6eca2b5ec027466e
parent22b9e651c2914dcf511665dd80cc9ce10ca53a1d (diff)
downloadcpython-308307190fa6f81c93ef9bb9d95457d14a6ca098.zip
cpython-308307190fa6f81c93ef9bb9d95457d14a6ca098.tar.gz
cpython-308307190fa6f81c93ef9bb9d95457d14a6ca098.tar.bz2
Fix issue #17707: multiprocessing.Queue's get() method does not block for short timeouts.
-rw-r--r--Lib/multiprocessing/connection.py2
-rw-r--r--Lib/test/test_multiprocessing.py7
-rw-r--r--Misc/NEWS3
3 files changed, 11 insertions, 1 deletions
diff --git a/Lib/multiprocessing/connection.py b/Lib/multiprocessing/connection.py
index 4dd6502..47e2123 100644
--- a/Lib/multiprocessing/connection.py
+++ b/Lib/multiprocessing/connection.py
@@ -862,7 +862,7 @@ else:
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
index 6cda4fa..c696340 100644
--- a/Lib/test/test_multiprocessing.py
+++ b/Lib/test/test_multiprocessing.py
@@ -699,6 +699,13 @@ class _TestQueue(BaseTestCase):
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
index 63f8d4b..63634dc 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -42,6 +42,9 @@ Core and Builtins
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.