class _ThreadWakeup:
- __slot__ = ["_state"]
-
def __init__(self):
self._reader, self._writer = mp.Pipe(duplex=False)
+ def close(self):
+ self._writer.close()
+ self._reader.close()
+
def wakeup(self):
self._writer.send_bytes(b"")
self._call_queue = None
self._result_queue = None
self._processes = None
+
+ if self._queue_management_thread_wakeup:
+ self._queue_management_thread_wakeup.close()
+ self._queue_management_thread_wakeup = None
+
shutdown.__doc__ = _base.Executor.shutdown.__doc__
atexit.register(_python_exit)
--- /dev/null
+FIX properly close leaking fds in concurrent.futures.ProcessPoolExecutor.