Skip to content

Commit 095ee41

Browse files
tomMoralasvetlov
authored andcommitted
bpo-33056 FIX leaking fd in concurrent.futures.ProcessPoolExecutor (#6084)
1 parent 5d2a27d commit 095ee41

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

Lib/concurrent/futures/process.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,13 @@
7878

7979

8080
class _ThreadWakeup:
81-
__slot__ = ["_state"]
82-
8381
def __init__(self):
8482
self._reader, self._writer = mp.Pipe(duplex=False)
8583

84+
def close(self):
85+
self._writer.close()
86+
self._reader.close()
87+
8688
def wakeup(self):
8789
self._writer.send_bytes(b"")
8890

@@ -654,6 +656,11 @@ def shutdown(self, wait=True):
654656
self._call_queue = None
655657
self._result_queue = None
656658
self._processes = None
659+
660+
if self._queue_management_thread_wakeup:
661+
self._queue_management_thread_wakeup.close()
662+
self._queue_management_thread_wakeup = None
663+
657664
shutdown.__doc__ = _base.Executor.shutdown.__doc__
658665

659666
atexit.register(_python_exit)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
FIX properly close leaking fds in concurrent.futures.ProcessPoolExecutor.

0 commit comments

Comments
 (0)