From: minima Date: Thu, 16 Nov 2000 16:24:01 +0000 (+0000) Subject: changed wait to waitpid in reaping X-Git-Tag: R_1_45~27 X-Git-Url: http://dxspider.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=50658a091d92a13b20823326a9f864d1a08817ba;p=spider.git changed wait to waitpid in reaping --- diff --git a/Changes b/Changes index 1162d9d1..4c4a089a 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,5 @@ +16Nov00======================================================================= +1. Alter the process reaping code in cluster.pl to use waitpid 12Nov00======================================================================= 1. Fix lack 't' action in Filter.pm 08Nov00======================================================================= diff --git a/perl/cluster.pl b/perl/cluster.pl index a645da33..eabc56e6 100755 --- a/perl/cluster.pl +++ b/perl/cluster.pl @@ -66,6 +66,7 @@ use BadWords; use Data::Dumper; use Fcntl ':flock'; +use POSIX ":sys_wait_h"; use Local; @@ -239,8 +240,10 @@ sub cease sub reap { $SIG{'CHLD'} = \&reap; - my $cpid = wait; - @outstanding_connects = grep {$_->{pid} != $cpid} @outstanding_connects; + my $cpid; + while (($cpid = waitpid(1, &WNOHANG) != -1)) { + @outstanding_connects = grep {$_->{pid} != $cpid} @outstanding_connects; + } } # this is where the input queue is dealt with and things are dispatched off to other parts of