no warnings qw(once);
# Program starts here
-$SIG{ALRM} = sub { output(); };
my $latest_update = undef;
+my $output_timer = undef;
my $http_timer = undef;
my $tb_retry_timer = undef;
my %tb_cache = ();
my $moves = $pgn->moves;
my @uci_moves = ();
for my $move (@$moves) {
- my ($pos, $uci_move) = $pos->make_pretty_move($move);
+ my $uci_move;
+ ($pos, $uci_move) = $pos->make_pretty_move($move);
push @uci_moves, $uci_move;
}
$pos->{'history'} = \@uci_moves;
# Don't update too often.
my $age = Time::HiRes::tv_interval($latest_update);
if ($age < $remoteglotconf::update_max_interval) {
- Time::HiRes::alarm($remoteglotconf::update_max_interval + 0.01 - $age);
+ my $wait = $remoteglotconf::update_max_interval + 0.01 - $age;
+ $output_timer = AnyEvent->timer(after => $wait, cb => \&output);
return;
}
my $moves = $pgn->moves;
my @uci_moves = ();
for my $move (@$moves) {
- my ($pvpos, $uci_move) = $pvpos->make_pretty_move($move);
+ my $uci_move;
+ ($pvpos, $uci_move) = $pvpos->make_pretty_move($move);
push @uci_moves, $uci_move;
}
$tb_cache{$fen} = {