summaryrefslogtreecommitdiffstats
path: root/Python/tracemalloc.c
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2023-09-11 08:11:31 (GMT)
committerGitHub <noreply@github.com>2023-09-11 08:11:31 (GMT)
commita9b1f84790e977fb09f75b148c4c4f5924a6ef99 (patch)
tree836a2e8244e2bcafa81cddaeb88e8489f63231b0 /Python/tracemalloc.c
parent3b2ecbc1275bd05534885cee9ac1389987238561 (diff)
downloadcpython-a9b1f84790e977fb09f75b148c4c4f5924a6ef99.zip
cpython-a9b1f84790e977fb09f75b148c4c4f5924a6ef99.tar.gz
cpython-a9b1f84790e977fb09f75b148c4c4f5924a6ef99.tar.bz2
gh-107219: Fix concurrent.futures terminate_broken() (#109244)
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.
Diffstat (limited to 'Python/tracemalloc.c')
0 files changed, 0 insertions, 0 deletions