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

Thiago Macieira thiago at
Fri Feb 4 17:17:13 GMT 2011

Em sexta-feira, 4 de fevereiro de 2011, às 18:05:09, Oswald Buddenhagen 
> On Fri, Feb 04, 2011 at 05:41:16PM +0100, Thiago Macieira wrote:
> > This makes each process started spawn a new thread, which
> > will block on waitpid(2).
> i have the vague notion that blocking/ignoring sigchld will prevent
> wait*() from working on some systems. dunno where i got that from.

>From the man page:

      ECHILD (for  waitpid()  or waitid()) The process specified by pid 
	      (waitpid()) or idtype and id (waitid()) does not exist or
              is not a child of the calling process.  (This can happen for 
              one's own child if the action for  SIGCHLD  is  set  to
              SIG_IGN.  See also the Linux Notes section about threads.)

> > I'm working on a solution that won't start the thread unless the
> > stderr and stdout pipes close (if they were open in the first place)
> > but the subprocess didn't exit.
> that won't work, because the process may spawn children who inherit its
> stdio and thus keep it open even after it exits.

I thought about that. My work on no-thread-until-pipes-close had already 
documented this as a behaviour change.

> >  void QProcessPrivate::initializeProcessManager()
> >  {
> > 
> > -    (void) processManager();
> > +    // Unix no longer has a process manager
> neither should windows. => trash?

Symbian still does.

Thiago Macieira - thiago (AT) - thiago (AT)
  Senior Product Manager - Nokia, Qt Development Frameworks
      PGP/GPG: 0x6EF45358; fingerprint:
      E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <>

More information about the kde-core-devel mailing list