projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
don't fork sh/dx on simple query
[spider.git]
/
perl
/
Timer.pm
diff --git
a/perl/Timer.pm
b/perl/Timer.pm
index 4a1e1c42e165395145eb913d124bdab2007991b9..e0f760b857a576708c60a01d9fe74a6a58b0a73f 100644
(file)
--- a/
perl/Timer.pm
+++ b/
perl/Timer.pm
@@
-3,35
+3,31
@@
#
# This uses callbacks. BE CAREFUL!!!!
#
#
# This uses callbacks. BE CAREFUL!!!!
#
-#
$Id$
+#
#
# Copyright (c) 2001 Dirk Koopman G1TLH
#
package Timer;
#
# Copyright (c) 2001 Dirk Koopman G1TLH
#
package Timer;
-use vars qw(@timerchain $notimers);
+use vars qw(@timerchain $notimers
$lasttime
);
use DXDebug;
@timerchain = ();
$notimers = 0;
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;
+$lasttime = 0;
sub new
{
my ($pkg, $time, $proc, $recur) = @_;
my $obj = ref($pkg);
my $class = $obj || $pkg;
sub new
{
my ($pkg, $time, $proc, $recur) = @_;
my $obj = ref($pkg);
my $class = $obj || $pkg;
- my $self = bless { t=>$time + time, proc=>$proc }, $class;
+ my $self = bless { t=>$time +
$main::sys
time, proc=>$proc }, $class;
$self->{interval} = $time if $recur;
push @timerchain, $self;
$self->{interval} = $time if $recur;
push @timerchain, $self;
- $notimers
++
;
- dbg("Timer created ($notimers)") if isdbg('connll');
+ $notimers
= @timerchain
;
+ dbg("Timer created (
notimers:
$notimers)") if isdbg('connll');
return $self;
}
return $self;
}
@@
-40,12
+36,16
@@
sub del
my $self = shift;
delete $self->{proc};
@timerchain = grep {$_ != $self} @timerchain;
my $self = shift;
delete $self->{proc};
@timerchain = grep {$_ != $self} @timerchain;
+ $notimers = @timerchain;
+ dbg("Timer deleted (notimers: $notimers)") if isdbg('connll');
}
sub handler
{
}
sub handler
{
- my $now = time;
-
+ my $now = $main::systime;
+
+ return unless $now != $lasttime;
+
# handle things on the timer chain
my $t;
foreach $t (@timerchain) {
# handle things on the timer chain
my $t;
foreach $t (@timerchain) {
@@
-54,11
+54,12
@@
sub handler
$t->{t} = $now + $t->{interval} if exists $t->{interval};
}
}
$t->{t} = $now + $t->{interval} if exists $t->{interval};
}
}
+
+ $lasttime = $now;
}
sub DESTROY
{
dbg("timer destroyed ($Timer::notimers)") if isdbg('connll');
}
sub DESTROY
{
dbg("timer destroyed ($Timer::notimers)") if isdbg('connll');
- $Timer::notimers--;
}
1;
}
1;