Kaydet (Commit) e42339d3 authored tarafından Victor Stinner's avatar Victor Stinner Kaydeden (comit) GitHub

[3.6] bpo-30595: Fix multiprocessing.Queue.get(timeout) (#2027) (#2881)

* 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: 's avatarGrzegorz Grzywacz <grzgrzgrz3@gmail.com>
(cherry picked from commit 1b7863c3)

* 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 8f6eeaf2)
üst a6f04522
...@@ -101,7 +101,7 @@ class Queue(object): ...@@ -101,7 +101,7 @@ class Queue(object):
try: try:
if block: if block:
timeout = deadline - time.time() timeout = deadline - time.time()
if timeout < 0 or not self._poll(timeout): if not self._poll(timeout):
raise Empty raise Empty
elif not self._poll(): elif not self._poll():
raise Empty raise Empty
......
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.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment