now with async sh/qrz!
[spider.git] / perl / cluster.pl
index 2cf7173f9c5cea358c8267670f27d029c07f0cf4..43828974d05c00f10d7936c8815b3df914fa8500 100755 (executable)
@@ -144,10 +144,9 @@ sub already_conn
 {
        my ($conn, $call, $mess) = @_;
 
-       $conn->disable_read(1);
        dbg("-> D $call $mess\n") if isdbg('chan');
+       $conn->disable_read(1);
        $conn->send_now("D$call|$mess");
-       sleep(2);
        $conn->disconnect;
 }
 
@@ -372,6 +371,8 @@ sub idle_loop
                AGWMsg::process();
                BPQMsg::process();
 
+               Timer::handler();
+
                if (defined &Local::process) {
                        eval {
                                Local::process();       # do any localised processing
@@ -491,6 +492,8 @@ my ($sigint, $sigterm);
 unless ($DB::VERSION) {
        $sigint = AnyEvent->signal(signal=>'INT', cb=> sub{$decease->send});
        $sigterm = AnyEvent->signal(signal=>'TERM', cb=> sub{$decease->send});
+#      $sigint = AnyEvent->signal(signal=>'INT', cb=> sub{AnyEvent->unloop});
+#      $sigterm = AnyEvent->signal(signal=>'TERM', cb=> sub{AnyEvent->unloop});
 }
 
 unless ($is_win) {
@@ -579,11 +582,11 @@ $script->run($main::me) if $script;
 
 #open(DB::OUT, "|tee /tmp/aa");
 
-my $idle_loop = AnyEvent->idle(cb => &idle_loop);
-
+my $per_sec = AnyEvent->timer(after => 0, interval => 0.010, cb => sub{idle_loop()});
 
 # main loop
 $decease->recv;
+#AnyEvent->loop;
 
 idle_loop() for (1..25);
 cease(0);