# Created: 19990925.
#
-use strict;
+# use strict; # TODO
my $uptimerecords = 3;
my $uptimenow = &uptimeNow();
if (defined $_[0]) {
- return "$uptimenow.$$ running $bot_version, ended ". localtime(time());
+ return "$uptimenow.$$ running $bot_version, ended ". gmtime(time());
} else {
return "$uptimenow running $bot_version";
}
}
sub uptimeGetInfo {
- my (%uptime,%done,%pid);
+ my (%uptime,%done);
my ($uptime,$pid);
my @results;
my $file = $file{utm};
# fixed up bad implementation :)
# should be no problems, even if uptime or pid is duplicated.
+ ## WARN: run away forks may get through here, have to fix.
foreach $uptime (sort {$b <=> $a} keys %uptime) {
- foreach $pid (keys %{$uptime{$uptime}}) {
+ foreach $pid (keys %{ $uptime{$uptime} }) {
next if (exists $done{$pid});
push(@results,"$uptime.$pid $uptime{$uptime}{$pid}");
my @results = &uptimeGetInfo();
my $file = $file{utm};
+ if ($$ != $bot_pid) {
+ &FIXME('uptime: forked process doing weird things!');
+ exit 0;
+ }
+
if (!open(OUT,">$file")) {
&status("error: cannot write to $file.");
return;
}
close OUT;
+ &status("--- Saved uptime records.");
+
+ return unless defined $conn;
$conn->schedule(&getRandomInt("1800-3600"), \&uptimeWriteFile, "");
- return;
}
1;