STINNER Victor <vstin...@python.org> added the comment:
Hum, I see a similar behavior on Linux. Try attached communicate_close.py (I added newlines for readability): --- vstinner@apu$ python3 communicate_close.py process 1: pid 13089 process 1: process 2 spawned (pid 13090) process 1: stdout pipe os.stat_result(st_mode=4480, st_ino=3107861, st_dev=12, st_nlink=1, st_uid=1000, st_gid=1000, st_size=0, st_atime=1568816000, st_mtime=1568816000, st_ctime=1568816000) process 1: communicate with process 2 (pid 13090) ... process 2: pid 13090 process 2: stdout os.stat_result(st_mode=4480, st_ino=3107861, st_dev=12, st_nlink=1, st_uid=1000, st_gid=1000, st_size=0, st_atime=1568816000, st_mtime=1568816000, st_ctime=1568816000) process 3: pid 13092 process 3: stdout os.stat_result(st_mode=4480, st_ino=3107861, st_dev=12, st_nlink=1, st_uid=1000, st_gid=1000, st_size=0, st_atime=1568816000, st_mtime=1568816000, st_ctime=1568816000) process 1 (thread): kill process 2 (pid 13090) process 1 (thread): close process 2 stdout pipe (fd 3) process 3: exit process 1: communicate with process 2 (pid 13090) ... done in 5.1 sec --- In process 1, communicate(<process 2>) does not complete immediately when the process 1 thread kills process 2 and closes process 2 stdout pipe. communicate() only completes once process 3 completes. The stdout file of process 2 and process 3 are the same file. ---------- Added file: https://bugs.python.org/file48612/communicate_close.py _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue38207> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com