[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