+sub set_host_status($$$) {
+ my ($ui, $mach, $stat) = @_;
+ my $prev_stat = $host_state{$mach};
+ if (defined $prev_stat) {
+ $host_cnt{$prev_stat}--;
+ } else {
+ for my $s ('unknown', 'ready', 'running', 'done', 'failed') { $job_cnt{$mach}{$s} = 0; }
+ }
+ $host_state{$mach} = $stat;
+ $host_cnt{$stat}++;
+}
+
+sub set_job_status($$$$) {
+ my ($ui, $mach, $jid, $stat) = @_;
+ my $prev_stat = $job_state{$mach}{$jid} // 'unknown';
+ $job_cnt{$mach}{$prev_stat}--;
+ $job_cnt{'*'}{$prev_stat}--;
+ $job_state{$mach}{$jid} = $stat;
+ $job_cnt{$mach}{$stat}++;
+ $job_cnt{'*'}{$stat}++;
+}
+