Review Request: Workaround for the hang (freeze) when opening VLC's file dialog under KDE...
Thiago Macieira
thiago at kde.org
Fri Feb 4 17:17:13 GMT 2011
Em sexta-feira, 4 de fevereiro de 2011, às 18:05:09, Oswald Buddenhagen
escreveu:
> 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) macieira.info - thiago (AT) kde.org
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: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20110204/186df574/attachment.sig>
More information about the kde-core-devel
mailing list