mirror of
https://github.com/python/cpython.git
synced 2025-11-26 21:33:10 +00:00
Fix a race condition in concurrent.futures. When a process in the process pool was terminated abruptly (while the future was running or pending), close the connection write end. If the call queue is blocked on sending bytes to a worker process, closing the connection write end interrupts the send, so the queue can be closed. Changes: * _ExecutorManagerThread.terminate_broken() now closes call_queue._writer. * multiprocessing PipeConnection.close() now interrupts WaitForMultipleObjects() in _send_bytes() by cancelling the overlapped operation. |
||
|---|---|---|
| .. | ||
| dummy | ||
| __init__.py | ||
| connection.py | ||
| context.py | ||
| forkserver.py | ||
| heap.py | ||
| managers.py | ||
| pool.py | ||
| popen_fork.py | ||
| popen_forkserver.py | ||
| popen_spawn_posix.py | ||
| popen_spawn_win32.py | ||
| process.py | ||
| queues.py | ||
| reduction.py | ||
| resource_sharer.py | ||
| resource_tracker.py | ||
| shared_memory.py | ||
| sharedctypes.py | ||
| spawn.py | ||
| synchronize.py | ||
| util.py | ||