use Data::Dumper;
use Fcntl ':flock';
+use POSIX ":sys_wait_h";
use Local;
@inqueue = (); # the main input queue, an array of hashes
$systime = 0; # the time now (in seconds)
-$version = "1.44"; # the version no of the software
+$version = "1.45"; # the version no of the software
$starttime = 0; # the starting time of the cluster
$lockfn = "cluster.lock"; # lock file name
@outstanding_connects = (); # list of outstanding connects
# the reaper of children
sub reap
{
- $SIG{'CHLD'} = \&reap;
- my $cpid = wait;
- @outstanding_connects = grep {$_->{pid} != $cpid} @outstanding_connects;
+ my $cpid;
+ while (($cpid = waitpid(1, &WNOHANG)) != -1) {
+ dbg('reap', "cpid: $cpid");
+ @outstanding_connects = grep {$_->{pid} != $cpid} @outstanding_connects;
+ }
+ dbg('reap', "cpid: $cpid");
}
# this is where the input queue is dealt with and things are dispatched off to other parts of
# put in a DXCluster node for us here so we can add users and take them away
-DXNode->new(0, $mycall, 0, 1, $DXProt::myprot_version);
+DXNode->new($DXProt::me, $mycall, 0, 1, $DXProt::myprot_version);
# read in any existing message headers and clean out old crap
dbg('err', "reading existing message headers ...");