X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FTimer.pm;h=fc1103159d2150cd3a9468669abfc3f226fc568c;hb=3f58f5ebe86a749d9e1ab37f25b3e7c7255a1906;hp=281421f08d72394b13c54912d97fbb476d3ae0ba;hpb=a6e52cc1680c2c30ef874e2e6c16d00c956624ee;p=spider.git diff --git a/perl/Timer.pm b/perl/Timer.pm index 281421f0..fc110315 100644 --- a/perl/Timer.pm +++ b/perl/Timer.pm @@ -16,6 +16,14 @@ use DXDebug; @timerchain = (); $notimers = 0; +use vars qw($VERSION $BRANCH); +$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ ); +$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ || (0,0)); +$main::build += $VERSION; +$main::branch += $BRANCH; + +my $lasttime = 0; + sub new { my ($pkg, $time, $proc, $recur) = @_; @@ -25,7 +33,7 @@ sub new $self->{interval} = $time if $recur; push @timerchain, $self; $notimers++; - dbg('connll', "Timer created ($notimers)"); + dbg("Timer created ($notimers)") if isdbg('connll'); return $self; } @@ -39,7 +47,9 @@ sub del sub handler { my $now = time; - + + return unless $now != $lasttime; + # handle things on the timer chain my $t; foreach $t (@timerchain) { @@ -48,11 +58,13 @@ sub handler $t->{t} = $now + $t->{interval} if exists $t->{interval}; } } + + $lasttime = $now; } sub DESTROY { - dbg('connll', "timer destroyed ($Timer::notimers)"); + dbg("timer destroyed ($Timer::notimers)") if isdbg('connll'); $Timer::notimers--; } 1;