diff --git a/Lib/multiprocessing/queues.py b/Lib/multiprocessing/queues.py index bb1e7282db8..079cd354d6e 100644 --- a/Lib/multiprocessing/queues.py +++ b/Lib/multiprocessing/queues.py @@ -128,7 +128,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.d/next/Library/2017-07-26-04-46-12.bpo-30595.-zJ7d8.rst b/Misc/NEWS.d/next/Library/2017-07-26-04-46-12.bpo-30595.-zJ7d8.rst new file mode 100644 index 00000000000..4a2a3901cc6 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2017-07-26-04-46-12.bpo-30595.-zJ7d8.rst @@ -0,0 +1,3 @@ +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.