9 mkdir -p version-charset-test
10 cd version-charset-test
25 #git commit --allow-empty -m 'Test object'
26 #head=`git rev-parse HEAD`
38 my @freecpus = qw('"$cpus"');
40 print STDERR "check using cpus @freecpus\n";
43 my ($pid, $cpu, $oldbatch) = @{ shift @tasks };
44 waitpid $pid, 0 == $pid or die $!;
45 die "$oldbatch $?" if $?;
46 unlink "b$oldbatch" or die "$oldbatch $!";
47 # print STDERR "check completed $oldbatch [$pid] #$cpu\n";
51 sub complete_batch () {
54 close $file or die $!;
56 # print STDERR "check closing $batch ($count)\n";
58 await_task unless @freecpus;
60 my $cpu = shift @freecpus;
62 my $pid = fork // die $!;
67 open STDIN, "<", "b$batch" or die $batch;
68 chdir "c$cpu" or die "$cpu $!";
69 exec qw(eatmydata git update-ref --stdin);
72 # print STDERR "check spawned $batch ($count) [$pid] #$cpu\n";
73 push @tasks, [ $pid, $cpu, $batch ];
80 #print STDERR ">$_<\n";
81 $file ||= new IO::File "b$batch", ">" or die $!;
83 print $file "delete refs/tags/$_\n" or die $!;
84 $count++ < 1000 or complete_batch;
86 #print STDERR "FOO\n";
87 STDIN->error and die $!;
89 await_task while @tasks;
90 print STDERR "check happy all done\n";