summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2011-06-02 10:38:48 +0000
committerPaul Buetow <paul@buetow.org>2011-06-02 10:38:48 +0000
commit545d347887f543bba24083da2980aac2b91ddee9 (patch)
treedacd6e33fb5bd205eb74cb071a695eb7c354a5c6
parentb5a56d2805131bf4595173206ccbb5bdfb2cc0bf (diff)
initial carry handling
-rw-r--r--TODO1
-rw-r--r--lib/PerlDaemon/RunModules.pm12
2 files changed, 12 insertions, 1 deletions
diff --git a/TODO b/TODO
index 3d9a157..aa39935 100644
--- a/TODO
+++ b/TODO
@@ -1,2 +1,3 @@
* Add documentation
+* Add carry handling (sum it up)
* Add special SIGNAL handling (e.g. trigger modules)
diff --git a/lib/PerlDaemon/RunModules.pm b/lib/PerlDaemon/RunModules.pm
index 2c2d188..95bb577 100644
--- a/lib/PerlDaemon/RunModules.pm
+++ b/lib/PerlDaemon/RunModules.pm
@@ -57,6 +57,7 @@ sub do ($) {
unless (%$modules) {
$logger->warn("No modules are loaded!");
+
} else {
while (my ($k, $v) = each %$modules) {
my $now = [gettimeofday];
@@ -64,11 +65,20 @@ sub do ($) {
my $interval = $scheduler->{$k}{interval};
if ($timediff >= $interval) {
- $logger->logmsg("Triggering $k (last triggered before ${timediff}s; wanted interval: ${interval}s)");
+ my $carry = $timediff - $interval;
+ $logger->logmsg("Triggering $k (last triggered before ${timediff}s; carry: ${carry}s; wanted interval: ${interval}s)");
+
+ # TODO: carry handling
+ #if ($firstloop == 0) {
+ #}
+
$scheduler->{$k}{lastrun} = $now;
$v->do();
+
}
}
+
+ $firstloop = 0;
}
}