cpython: 069c13ca7a70 (original) (raw)

Mercurial > cpython

changeset 94885:069c13ca7a70 2.7

Issue #22853: Fixed a deadlock when use multiprocessing.Queue at import time. Patch by Florian Finkernagel and Davin Potts. [#22853]

Serhiy Storchaka storchaka@gmail.com
date Fri, 06 Mar 2015 22:17:25 +0200
parents f31b91b6683a
children 4ad1ea911fd0
files Lib/multiprocessing/queues.py Lib/test/test_multiprocessing.py Misc/ACKS Misc/NEWS
diffstat 4 files changed, 29 insertions(+), 6 deletions(-)[+] [-] Lib/multiprocessing/queues.py 10 Lib/test/test_multiprocessing.py 20 Misc/ACKS 2 Misc/NEWS 3

line wrap: on

line diff

--- a/Lib/multiprocessing/queues.py +++ b/Lib/multiprocessing/queues.py @@ -44,10 +44,10 @@ import weakref from Queue import Empty, Full import _multiprocessing -from multiprocessing import Pipe -from multiprocessing.synchronize import Lock, BoundedSemaphore, Semaphore, Condition -from multiprocessing.util import debug, info, Finalize, register_after_fork -from multiprocessing.forking import assert_spawning +from . import Pipe +from .synchronize import Lock, BoundedSemaphore, Semaphore, Condition +from .util import debug, info, Finalize, register_after_fork, is_exiting +from .forking import assert_spawning #

Queue type using a pipe, buffer and thread

@@ -229,8 +229,6 @@ class Queue(object): @staticmethod def _feed(buffer, notempty, send, writelock, close): debug('starting thread to feed data to pipe')

- nacquire = notempty.acquire nrelease = notempty.release nwait = notempty.wait

--- a/Lib/test/test_multiprocessing.py +++ b/Lib/test/test_multiprocessing.py @@ -620,6 +620,26 @@ class _TestQueue(BaseTestCase): for p in workers: p.join()

+

+

+ # # #

--- a/Misc/ACKS +++ b/Misc/ACKS @@ -411,6 +411,7 @@ Vincent Fiack Anastasia Filatova Tomer Filiba Jeffrey Finkelstein +Florian Finkernagel Russell Finn Dan Finnie Nils Fischbeck @@ -1073,6 +1074,7 @@ Martin Pool Iustin Pop Claudiu Popa John Popplewell +Davin Potts Guillaume Pratte Amrit Prem Paul Prescod

--- a/Misc/NEWS +++ b/Misc/NEWS @@ -18,6 +18,9 @@ Core and Builtins Library ------- +- Issue #22853: Fixed a deadlock when use multiprocessing.Queue at import time.