From kde-core-devel Fri Nov 30 15:34:34 2001 From: Lubos Lunak Date: Fri, 30 Nov 2001 15:34:34 +0000 To: kde-core-devel Subject: Re: KProcess eats SIGCHLD, so pclose() fails X-MARC-Message: https://marc.info/?l=kde-core-devel&m=100713439610954 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--------------Boundary-00=_MXDMR5Z8BF2K1V8ZZHL0" --------------Boundary-00=_MXDMR5Z8BF2K1V8ZZHL0 Content-Type: text/plain; charset="iso-8859-2" Content-Transfer-Encoding: 8bit On Fri 30. November 2001 14:47, David Faure wrote: > On Thursday 29 November 2001 21:01, Luis Pedro Coelho wrote: > > Em Quarta, 28 de Novembro de 2001 21:18, David Faure escreveu: > > > On Wednesday 28 November 2001 20:28, aleXXX wrote: > > > > On Wed 28 Nov 01 18:32, David Faure wrote: > > > > > KProcessController, instantiated by KProcess, seems to grab all > > > > > SIGCHLD events, even the ones that have nothing to do with > > > > > KProcess. > > > > > > > > After looking at the code, it grabs exactly SIGCHLD and SIGPIPE since > > > > it has to know when its child dies. > > > > > > Yes, but maybe there's a way to tell it to ignore a certain pid, or to > > > forward unknown signals, or... > > > > I think this is impossible to do correctly. > > Lubos Lunak (a very clever man;) came up with a patch that fixes this. Apparently no clever enough, I missed that post. > Not committed yet, under discussion with Waldo. > I ported my kde-2.2.2 code to KProcIO, works great. But it's good to know > that KDE-3 programs will be able to use libraries that use popen/pclose > without trouble. You're right, signal handlers suck. Anyway, since I've already written it, the attached patch should make it work as good as possible. popen() works with it, so be sane and use KProcess/KProcIO whenever possible. -- Lubos Lunak llunak@suse.cz ; l.lunak@kde.org http://dforce.sh.cvut.cz/~seli --------------Boundary-00=_MXDMR5Z8BF2K1V8ZZHL0 Content-Type: application/x-bzip2; name="kprocess.tar.bz2" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="kprocess.tar.bz2" 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 --------------Boundary-00=_MXDMR5Z8BF2K1V8ZZHL0--