[issue42110] race condition in ThreadChildWatcher (default) and MultiLoopChildWatcher

2020-10-22 Thread Alan Jenkins
Alan Jenkins added the comment: Put the other way, if you wanted to fix this bug in ThreadedChildWatcher, and go as far as allowing cancelling Process.wait(), followed by kill() / send_signal(), then I think you need - * siginterrupt(SIGCHLD, 1) * not to mind about any random C code that doe

[issue42110] race condition in ThreadChildWatcher (default) and MultiLoopChildWatcher

2020-10-22 Thread Alan Jenkins
Alan Jenkins added the comment: There's one way to fix this in MultiLoopChildWatcher (but not ThreadedChildWatcher). Make sure the waitpid() runs on the same thread that created the subprocess. Prototype: https://github.com/sourcejedi/cpython/commit/92f979bce4582e807facb1c274a962b3caf0d2eb

[issue42110] race condition in ThreadChildWatcher (default) and MultiLoopChildWatcher

2020-10-21 Thread Alan Jenkins
New submission from Alan Jenkins : ## Test program ## import asyncio import time import os import signal import sys # This bug happens with the default, ThreadedChildWatcher # It also happens with MultiLoopChildWatcher, # but not the other three watcher types. #asyncio.set_child_watcher(asynci