From: Victor Stinner Date: Sat, 10 Jun 2017 11:10:13 +0000 (+0200) Subject: bpo-30595: Fix multiprocessing.Queue.get(timeout) (#2027) X-Git-Tag: v3.7.0a1~638 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1b7863c3b6519c6e134c28cab8b8af0dea43e375;p=thirdparty%2FPython%2Fcpython.git 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 --- diff --git a/Lib/multiprocessing/queues.py b/Lib/multiprocessing/queues.py index 7f77837a74ac..90844fed158c 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 6f56fe0583a6..185ec0ed866b 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.