Is there a way to make the processes in concurrent.futures.ProcessPoolExecutor
terminate if the parent process terminates for any reason?
Some details: I'm using ProcessPoolExecutor
in a job that processes a lot of data. Sometimes I need to terminate the parent process with a kill command, but when I do that the processes from ProcessPoolExecutor
keep running and I have to manually kill them too. My primary work loop looks like this:
with concurrent.futures.ProcessPoolExecutor(n_workers) as executor:
result_list = [executor.submit(_do_work, data) for data in data_list]
for id, future in enumerate(
concurrent.futures.as_completed(result_list)):
print(f'{id}: {future.result()}')
Is there anything I can add here or do differently to make the child processes in executor
terminate if the parent dies?
kill -9
– Adverse