summaryrefslogtreecommitdiff
path: root/Python/importlib_external.h
diff options
context:
space:
mode:
authorThomas Moreau <thomas.moreau.2010@gmail.com>2020-02-16 19:09:26 +0100
committerGitHub <noreply@github.com>2020-02-16 10:09:26 -0800
commita5cbab552d294d99fde864306632d7e511a75d3c (patch)
tree3f12da3e9bc19c5ae9e836a6694d90cc9ddd35d6 /Python/importlib_external.h
parent1ed61617a4a6632905ad6a0b440cd2cafb8b6414 (diff)
downloadcpython-git-a5cbab552d294d99fde864306632d7e511a75d3c.tar.gz
bpo-39104: Fix hanging ProcessPoolExecutor on shutdown nowait with pickling failure (GH-17670)
As reported initially by @rad-pat in #6084, the following script causes a deadlock. ``` from concurrent.futures import ProcessPoolExecutor class ObjectWithPickleError(): """Triggers a RuntimeError when sending job to the workers""" def __reduce__(self): raise RuntimeError() if __name__ == "__main__": e = ProcessPoolExecutor() f = e.submit(id, ObjectWithPickleError()) e.shutdown(wait=False) f.result() # Deadlock on get ``` This is caused by the fact that the main process is closing communication channels that might be necessary to the `queue_management_thread` later. To avoid this, this PR let the `queue_management_thread` manage all the closing. https://bugs.python.org/issue39104 Automerge-Triggered-By: @pitrou
Diffstat (limited to 'Python/importlib_external.h')
0 files changed, 0 insertions, 0 deletions