subprocess.Popen deadlocks
Lawrence D'Oliveiro
ldo at geek-central.gen.new_zealand
Fri Nov 12 00:58:11 EST 2010
In message
<2cf9a225-7d1c-4490-8a62-807e79bdd06a at n30g2000vbb.googlegroups.com>,
eraserix wrote:
> I try to control several process from a python script. Each process is
> started from a thread, the threads just wait() for the child to exit
> and can then be joined. Main waits for SIGINT. After it received the
> signal, it will send a signal to the processes spawned by the threads
> and then join() the threads (which should terminate after their
> process exits)
Threading is always likely to be a source of bugs, whether in your code or
the Python library. In this case, your threads don’t even seem to be doing
anything useful.
Why not skip all the threads and just spawn all the processes in your main
loop? Then after getting the SIGINT, send that signal to all your processes,
and then do a bunch of os.waitpid calls to clean them all up.
More information about the Python-list
mailing list