Review Request: Workaround for the hang (freeze) when opening VLC's file dialog under KDE...

Oswald Buddenhagen ossi at kde.org
Fri Feb 4 18:38:51 GMT 2011


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?




More information about the kde-core-devel mailing list