mirror of https://github.com/python/cpython
Issue #13373: multiprocessing.Queue.get() could sometimes block indefinitely
when called with a timeout. Patch by Arnaud Ysmal.
This commit is contained in:
parent
cb65f3249a
commit
6a570d6b9a
|
@ -126,7 +126,11 @@ class Queue(object):
|
|||
if not self._rlock.acquire(block, timeout):
|
||||
raise Empty
|
||||
try:
|
||||
if not self._poll(block and (deadline-time.time()) or 0.0):
|
||||
if block:
|
||||
timeout = deadline - time.time()
|
||||
if timeout < 0 or not self._poll(timeout):
|
||||
raise Empty
|
||||
elif not self._poll():
|
||||
raise Empty
|
||||
res = self._recv()
|
||||
self._sem.release()
|
||||
|
|
|
@ -924,6 +924,7 @@ Bob Yodlowski
|
|||
Danny Yoo
|
||||
George Yoshida
|
||||
Masazumi Yoshikawa
|
||||
Arnaud Ysmal
|
||||
Bernard Yue
|
||||
Moshe Zadka
|
||||
Milan Zamazal
|
||||
|
|
Loading…
Reference in New Issue