Camilla Montonen added the comment: I did some investigating using a test script and Python 3.7.0a0
from multiprocessing import Pool import os import time def f(x): time.sleep(30) return x*x if __name__=='__main__': print('Main pid {0}'.format(os.getpid())) p = Pool(5) p.map(f, [1,2,3]) print('Returned') time.sleep(30) and grepping for pipe and the parentpid in the output from lsof ( lsof | grep python.*<parentpid>.*pipe ). The pipes opened at the start of the script are still open even after the line print('Returned') is executed. I suppose this is expected because I did not call *p.close()*. All pipes are cleaned up after the parent process finishes. When I repeat the experiment calling p.close() after p.map returns, all that is left is the 9 pipes opened by the parent. All pipes are cleaned up after parent script exits. @shani - could you please clarify how you were able to detect the leaking pipes? ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue23267> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com