On Fri, Feb 04, 2011 at 06:28:10PM +0100, Thiago Macieira wrote: > Em sexta-feira, 4 de fevereiro de 2011, às 18:17:13, Thiago Macieira escreveu: > > I thought about that. My work on no-thread-until-pipes-close had already > > documented this as a behaviour change. > > Think about it anyway: if the child process dies but the grandchild one > doesn't, it will die when the current application exits. > not if it doesn't actually care for its stdio, like most gui applications. and as redirecting stdio is the default in qprocess, this would happen rather often.
> There is another drawback: the child process would be a Zombie until all its > children died too. > yes, and expected qt signals would not be delivered, so the parent would livelock. i've been through this with naive implementations. trust me, it just doesn't work. fwiw, there is an interesting race condition between the child process exit and the grandchildren's output: in the parent you want to collect all remaining output from the child after it exited. but what if the grandchild continues pumping?