Staging
v0.5.1
v0.5.1
https://github.com/python/cpython
Revision a5cbab552d294d99fde864306632d7e511a75d3c authored by Thomas Moreau on 16 February 2020, 18:09:26 UTC, committed by GitHub on 16 February 2020, 18:09:26 UTC
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
1 parent 1ed6161
Tip revision: a5cbab552d294d99fde864306632d7e511a75d3c authored by Thomas Moreau on 16 February 2020, 18:09:26 UTC
bpo-39104: Fix hanging ProcessPoolExecutor on shutdown nowait with pickling failure (GH-17670)
bpo-39104: Fix hanging ProcessPoolExecutor on shutdown nowait with pickling failure (GH-17670)
Tip revision: a5cbab5
File | Mode | Size |
---|---|---|
pgen | ||
Python.asdl | -rw-r--r-- | 5.3 KB |
acceler.c | -rw-r--r-- | 3.3 KB |
asdl.py | -rw-r--r-- | 12.6 KB |
asdl_c.py | -rwxr-xr-x | 46.7 KB |
grammar1.c | -rw-r--r-- | 1.0 KB |
listnode.c | -rw-r--r-- | 1.6 KB |
myreadline.c | -rw-r--r-- | 10.6 KB |
node.c | -rw-r--r-- | 5.1 KB |
parser.c | -rw-r--r-- | 12.4 KB |
parser.h | -rw-r--r-- | 1.4 KB |
parsetok.c | -rw-r--r-- | 13.8 KB |
token.c | -rw-r--r-- | 4.5 KB |
tokenizer.c | -rw-r--r-- | 55.9 KB |
tokenizer.h | -rw-r--r-- | 3.7 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...