bpo-30595: Fix multiprocessing.Queue.get(timeout) (#2027) · python/cpython@1b7863c (original) (raw)

Skip to content

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Appearance settings

Commit 1b7863c

vstinnergrzgrzgrz3

and

authored

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 grzgrzgrz3@gmail.com

File tree

2 files changed

lines changed

2 files changed

lines changed

Lines changed: 1 addition & 1 deletion

Original file line number Diff line number Diff line change
@@ -101,7 +101,7 @@ def get(self, block=True, timeout=None):
101 101 try:
102 102 if block:
103 103 timeout = deadline - time.time()
104 -if timeout < 0 or not self._poll(timeout):
104 +if not self._poll(timeout):
105 105 raise Empty
106 106 elif not self._poll():
107 107 raise Empty

Lines changed: 5 additions & 1 deletion

Original file line number Diff line number Diff line change
@@ -350,10 +350,14 @@ Extension Modules
350 350 Library
351 351 -------
352 352
353 +- bpo-30595: multiprocessing.Queue.get() with a timeout now polls its reader in
354 + non-blocking mode if it succeeded to aquire the lock but the acquire took
355 + longer than the timeout.
356 +
353 357 - bpo-30605: re.compile() no longer raises a BytesWarning when compiling a
354 358 bytes instance with misplaced inline modifier. Patch by Roy Williams.
355 359
356 -- bpo-29870: Fix ssl sockets leaks when connection is aborted in asyncio/ssl
360 +- bpo-29870: Fix ssl sockets leaks when connection is aborted in asyncio/ssl
357 361 implementation. Patch by Michaël Sghaïer.
358 362
359 363 - bpo-29743: Closing transport during handshake process leaks open socket.