Perl 5.8.2 issue with SIG{CHLD}?

Chris Samaritoni chris at tierra.net
Mon May 24 11:53:26 PDT 2004


Hi,

I noticed that the Perl 5.8.2 port isn't handling $SIG{CHLD} signals as 
previous versions have, and wondered if anyone had experienced similar 
problems? This seems to affect both FreeBSD 4.8 and 4.9, here is a simple 
perl script which demonstrates the problem.

Basically, $SIG{CHLD} = 'IGNORE' is supposed to have Perl automatically 
reap zombie children, however it acts as if Perl is never receiving the 
CHLD signal. This code seems to work properly on 5.00503 out of the box, 
just not on 5.8.2 port:

$SIG{CHLD} = 'IGNORE';
#or: $SIG{CHLD} = sub { wait; };
for (1..10) {
     # fork 10 children which will immediately exit
     my $pid = fork();
     if (!$pid) { exit(); }
     else { print "CHILD: $pid\n"; }
}
#perl should clean up zombies here automatically:
sleep 5;

#show any remaining zombies (there should be none)
system("ps ax | grep perl");


Thanks for any input.



More information about the freebsd-ports mailing list