summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2017-06-10 11:10:13 (GMT)
committerGitHub <noreply@github.com>2017-06-10 11:10:13 (GMT)
commit1b7863c3b6519c6e134c28cab8b8af0dea43e375 (patch)
treef4c245335c1bd7de1f5bebb1f6dd99a44d569984
parent5f31d5cf6efa8c304d352e34f9f2a1ed0074298e (diff)
downloadcpython-1b7863c3b6519c6e134c28cab8b8af0dea43e375.zip
cpython-1b7863c3b6519c6e134c28cab8b8af0dea43e375.tar.gz
cpython-1b7863c3b6519c6e134c28cab8b8af0dea43e375.tar.bz2
bpo-30595: Fix multiprocessing.Queue.get(timeout) (#2027)
multiprocessing.Queue.get() with a timeout now polls its reader in non-blocking mode if it succeeded to aquire the lock but the acquire took longer than the timeout. Co-Authored-By: Grzegorz Grzywacz <grzgrzgrz3@gmail.com>
-rw-r--r--Lib/multiprocessing/queues.py2
-rw-r--r--Misc/NEWS6
2 files changed, 6 insertions, 2 deletions
diff --git a/Lib/multiprocessing/queues.py b/Lib/multiprocessing/queues.py
index 7f77837..90844fe 100644
--- a/Lib/multiprocessing/queues.py
+++ b/Lib/multiprocessing/queues.py
@@ -101,7 +101,7 @@ class Queue(object):
try:
if block:
timeout = deadline - time.time()
- if timeout < 0 or not self._poll(timeout):
+ if not self._poll(timeout):
raise Empty
elif not self._poll():
raise Empty
diff --git a/Misc/NEWS b/Misc/NEWS
index 6f56fe0..185ec0e 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -350,10 +350,14 @@ Extension Modules
Library
-------
+- bpo-30595: multiprocessing.Queue.get() with a timeout now polls its reader in
+ non-blocking mode if it succeeded to aquire the lock but the acquire took
+ longer than the timeout.
+
- bpo-30605: re.compile() no longer raises a BytesWarning when compiling a
bytes instance with misplaced inline modifier. Patch by Roy Williams.
-- bpo-29870: Fix ssl sockets leaks when connection is aborted in asyncio/ssl
+- bpo-29870: Fix ssl sockets leaks when connection is aborted in asyncio/ssl
implementation. Patch by Michaël Sghaïer.
- bpo-29743: Closing transport during handshake process leaks open socket.