+ return unless $file;
+
+ close $file or die $!;
+
+# print STDERR "check closing $batch ($count)\n";
+
+ await_task unless @freecpus;
+
+ my $cpu = shift @freecpus;
+
+ my $pid = fork // die $!;
+ if (!$pid) {
+ close STDIN;
+# seek STDIN,0,1;
+# flush STDIN;
+ open STDIN, "<", "b$batch" or die $batch;
+ chdir "c$cpu" or die "$cpu $!";
+ exec qw(eatmydata git update-ref --stdin);
+ die $!;
+ }
+# print STDERR "check spawned $batch ($count) [$pid] #$cpu\n";
+ push @tasks, [ $pid, $cpu, $batch ];
+ $batch++;