12 #git commit --allow-empty -m 'Test object'
13 #head=`git rev-parse HEAD`
27 Sys::CPU::cpu_count();
31 print STDERR "check using $ncpus cpus\n";
34 my ($pid, $oldbatch) = @{ shift @tasks };
35 waitpid $pid, 0 == $pid or die $!;
36 die "$oldbatch $?" if $?;
37 unlink $oldbatch or die "$oldbatch $!";
38 print STDERR "check completed $oldbatch [$pid]\n";
41 sub complete_batch () {
44 close $file or die $!;
46 print STDERR "check closing $batch ($count)\n";
48 await_task if @tasks >= $ncpus;
50 my $pid = fork // die $!;
55 open STDIN, "<", $batch or die $batch;
56 exec qw(git update-ref --stdin);
59 print STDERR "check spawned $batch ($count) [$pid]\n";
60 push @tasks, [ $pid, $batch ];
67 #print STDERR ">$_<\n";
68 $file ||= new IO::File $batch, ">" or die $!;
70 print $file "delete refs/tags/$_\n" or die $!;
71 $count++ < 100000 or complete_batch;
73 #print STDERR "FOO\n";
74 STDIN->error and die $!;
76 await_task while @tasks;