projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
as last log
[spider.git]
/
perl
/
cluster.pl
diff --git
a/perl/cluster.pl
b/perl/cluster.pl
index b3b4c5a64595547862a84b244d7d0ab14850b0eb..0a66c1db5732a6a2448526ee77d237a734a96026 100755
(executable)
--- a/
perl/cluster.pl
+++ b/
perl/cluster.pl
@@
-36,11
+36,15
@@
BEGIN {
open(CLLOCK, ">$lockfn") or die "Can't open Lockfile ($lockfn) $!";
print CLLOCK "$$\n";
close CLLOCK;
open(CLLOCK, ">$lockfn") or die "Can't open Lockfile ($lockfn) $!";
print CLLOCK "$$\n";
close CLLOCK;
+
+ $is_win = ($^O =~ /^MS/ || $^O =~ /^OS-2/) ? 1 : 0; # is it Windows?
+ $systime = time;
}
use Msg;
use IntMsg;
use ExtMsg;
}
use Msg;
use IntMsg;
use ExtMsg;
+use AGWMsg;
use DXVars;
use DXDebug;
use DXLog;
use DXVars;
use DXDebug;
use DXLog;
@@
-78,7
+82,7
@@
package main;
use strict;
use vars qw(@inqueue $systime $version $starttime $lockfn @outstanding_connects
$zombies $root @listeners $lang $myalias @debug $userfn $clusteraddr
use strict;
use vars qw(@inqueue $systime $version $starttime $lockfn @outstanding_connects
$zombies $root @listeners $lang $myalias @debug $userfn $clusteraddr
- $clusterport $mycall $decease $build
+ $clusterport $mycall $decease $build
$is_win
);
@inqueue = (); # the main input queue, an array of hashes
);
@inqueue = (); # the main input queue, an array of hashes
@@
-97,7
+101,7
@@
sub already_conn
dbg('chan', "-> D $call $mess\n");
$conn->send_now("D$call|$mess");
dbg('chan', "-> D $call $mess\n");
$conn->send_now("D$call|$mess");
- sleep(2);
+
Msg->
sleep(2);
$conn->disconnect;
}
$conn->disconnect;
}
@@
-214,6
+218,10
@@
sub cease
next if $dxchan->is_node;
$dxchan->disconnect unless $dxchan == $DXProt::me;
}
next if $dxchan->is_node;
$dxchan->disconnect unless $dxchan == $DXProt::me;
}
+
+ # disconnect AGW
+ AGWMsg::finish();
+
Msg->event_loop(1, 0.05);
Msg->event_loop(1, 0.05);
Msg->event_loop(1, 0.05);
Msg->event_loop(1, 0.05);
Msg->event_loop(1, 0.05);
Msg->event_loop(1, 0.05);
@@
-296,6
+304,12
@@
sub uptime
my $mins = int $t / 60;
return sprintf "%d %02d:%02d", $days, $hours, $mins;
}
my $mins = int $t / 60;
return sprintf "%d %02d:%02d", $days, $hours, $mins;
}
+
+sub AGWrestart
+{
+ AGWMsg::init(\&new_channel);
+}
+
#############################################################
#
# The start of the main line of code
#############################################################
#
# The start of the main line of code
@@
-363,12
+377,13
@@
for (@main::listen) {
push @listeners, $conn;
dbg('err', "External Port: $_->[0] $_->[1]");
}
push @listeners, $conn;
dbg('err', "External Port: $_->[0] $_->[1]");
}
+AGWrestart();
# load bad words
dbg('err', "load badwords: " . (BadWords::load or "Ok"));
# prime some signals
# load bad words
dbg('err', "load badwords: " . (BadWords::load or "Ok"));
# prime some signals
-unless ($
^O =~ /^MS/
) {
+unless ($
is_win
) {
unless ($DB::VERSION) {
$SIG{INT} = \&cease;
$SIG{TERM} = \&cease;
unless ($DB::VERSION) {
$SIG{INT} = \&cease;
$SIG{TERM} = \&cease;
@@
-461,7
+476,8
@@
for (;;) {
DXDb::process();
DXUser::process();
DXDupe::process();
DXDb::process();
DXUser::process();
DXDupe::process();
-
+ AGWMsg::process();
+
eval {
Local::process(); # do any localised processing
};
eval {
Local::process(); # do any localised processing
};