On Mon, Nov 08, 2004 at 11:19:00AM -0800, Seth Daniel wrote:
> On Mon, Nov 08, 2004 at 05:41:28PM +0900, Horms wrote:
> > Ok that makes some sense. I would guess that slightly older
> > versions of perl don't exhibit this behaviour. Did setting
> > $SIG{'CHLD'} to undef work? What I really want is for
> > there to be no handler on SIGCHLD and for the retun value
> > to be picked up by wait. It seems my assumtion that
> > $SIG{'CHLD'} = "IGNORE" would do that just because that is
> > the way it works in C is wrong.
>
> Yes, setting $SIG{'CHLD'} to undef works just fine. I don't know what
> you mean by 'slightly older versions of Perl'. I am seeing this problem
> on RH9 with perl 5.8.0 (RPM version 88).
The existing code works fine with v5.8.4 which is what I used to test it.
It is somewhat annoying that different versions of perl can exhibit
differnt behaviour with regards to handling SIGCHLD, but perhaps I am
dreaming. In any case there seem to be no complaints with regards to
the $SIG{'CHLD'}=undef solution, so I am will go with that for now.
--
Horms
|