Ask Your Question

Revision history [back]

I did not inspect deep causes (like a pipe being full), but a quic look at https://docs.python.org/2/library/multiprocessing.html indicates that doing queue.get() before p.join() seems to fix the issue. Just replace

    for p in processes:
        p.join()
    results = [queue.get() for p in processes]

with

    results = [queue.get() for p in processes]
    for p in processes:
        p.join()

I did not inspect deep causes (like a pipe being full), but a quic quick look at https://docs.python.org/2/library/multiprocessing.html indicates that doing queue.get() should be done before p.join() , and it seems to fix the issue. Just replace

    for p in processes:
        p.join()
    results = [queue.get() for p in processes]

with

    results = [queue.get() for p in processes]
    for p in processes:
        p.join()