Skip to content

Commit ec9a712

Browse files
authored
[3.6] bpo-30595: Fix multiprocessing.Queue.get(timeout) (#2027) (#2881) (#2883)
* 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 <[email protected]> (cherry picked from commit 1b7863c) * bpo-30595: Increase test_queue_feeder_donot_stop_onexc() timeout (#2148) _test_multiprocessing.test_queue_feeder_donot_stop_onexc() now uses a timeout of 1 second on Queue.get(), instead of 0.1 second, for slow buildbots. (cherry picked from commit 8f6eeaf) (cherry picked from commit e42339d)
1 parent e5eae47 commit ec9a712

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

Lib/multiprocessing/queues.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def get(self, block=True, timeout=None):
128128
try:
129129
if block:
130130
timeout = deadline - time.time()
131-
if timeout < 0 or not self._poll(timeout):
131+
if not self._poll(timeout):
132132
raise Empty
133133
elif not self._poll():
134134
raise Empty
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
multiprocessing.Queue.get() with a timeout now polls its reader in non-
2+
blocking mode if it succeeded to aquire the lock but the acquire took longer
3+
than the timeout.

0 commit comments

Comments
 (0)