$plan->{Start}= time;
$plan->{Events}= { };
+ $plan->{Unprocessed}= [ ];
my %magictask;
foreach my $taskrefkey (qw(preparing shared)) {
printf "</tr>\n";
}
printf "</table>\n";
+ printf "<p>\n";
+ my $unprocessed = $plan->{Unprocessed};
+ if (@$unprocessed) {
+ printf "%d tasks not processed and therefore not shown:\n",
+ scalar @$unprocessed;
+ my $shown = 0;
+ printf "<ul>\n";
+ foreach my $unprocessed (@$unprocessed) {
+ if (++$shown > 50) {
+ printf "<li>...</li>\n";
+ last;
+ }
+ printf "<li>%s</li>\n", encode_entities($unprocessed->{Info});
+ }
+ printf "</ul>\n";
+ printf "<p>\n";
+ }
printf "Report generated %s.\n",
strftime("%Y-%b-%d %a %H:%M:%S", localtime $now);
die $! if STDOUT->error;
die $! unless STDOUT->flush;
}
+sub cmd_unprocessed () {
+ die unless @ARGV==1;
+ my ($baseinfo) = @ARGV;
+
+ get_current_plan();
+ push @{ $plan->{Unprocessed} }, { Info => $baseinfo };
+ check_write_new_plan();
+}
+
die unless @ARGV;
die if $ARGV[0] =~ m/^-/;
my $subcmd= shift @ARGV;
log-event "restarter-restart-now projection-running"
}
+ foreach skip [set plan/queue_running] {
+ for-chan $skip {
+ chan-note-unprocessed plan $skip
+ }
+ }
report-plan plan plan
unset plan/queue_running
runneeded-ensure-will 2
}
+proc chan-note-unprocessed {w chan} {
+ exec ./ms-planner -w$w unprocessed [chan-plan-info $chan {}]
+}
+
proc notify-to-think {w thinking} {
for-chan $thinking {
set noalloc [chan-get-info $thinking {$info(feature-noalloc)} {}]
projection.1 { puts-chan $thinking "!OK think noalloc" }
projection.* {
# oh well, can't include it in the projection; too bad
+ chan-note-unprocessed $w $thinking
queuerun-step-done $w "!feature-noalloc"
}
}