my $PID = undef;
my $STATE = "off"; # `off', `on', `killed'
my $WANT = "off"; # `off', `on', `pause'
-my $STOPTIME = undef; # if $WANT eq "pause"
+my $WAKETIME = undef;
my $NOW = time;
$SIG{CHLD} = sub {
sub start () { $WANT = "on"; $STOPTIME = undef; }
sub pause () {
- if ($WANT eq "on") { $WANT = "pause"; $STOPTIME = $NOW + $PAUSETIME; }
+ if ($WANT eq "on") { $WANT = "pause"; $WAKETIME = $NOW + $PAUSETIME; }
}
sub fix_state () {
##mumble "state = $STATE ($PID)";
- ##mumble "want = $WANT ($STOPTIME <=> $NOW)";
+ ##mumble "want = $WANT ($WAKETIME <=> $NOW)";
- if ($WANT eq "pause" && $NOW >= $STOPTIME) {
- $WANT = "off"; $STOPTIME = undef;
+ if ($WANT eq "pause" && $NOW >= $WAKETIME) {
+ $WANT = "off"; $WAKETIME = undef;
mumble "pause time up: stopping" if $STATE eq "on";
}
SEL: {
eval {
$nfd = select my $rdout = $rdin, undef, undef,
- defined($STOPTIME) ? $STOPTIME - $NOW : 60;
+ defined($WAKETIME) ? $WAKETIME - $NOW : 60;
};
if ($@ && $@->errno == EINTR) { next SEL; }
elsif ($@) { mumble "error from select: " . $@->errno; last WATCH; }