]> git.sur5r.net Git - i3/i3/commitdiff
complete-run: wait for all jobs to be finished
authorMaik Fischer <maikf@qu.cx>
Thu, 10 Nov 2011 12:48:21 +0000 (13:48 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Mon, 21 Nov 2011 19:20:52 +0000 (19:20 +0000)
testcases/complete-run.pl

index 56ed01a57887f7caff2b021ed9540c5add1ad19f..c62623f10245ae29ceab38165ed1c01156f62d49 100755 (executable)
@@ -139,7 +139,7 @@ status_init(displays => \@wdisplays, tests => $num);
 
 # We start tests concurrently: For each display, one test gets started. Every
 # test starts another test after completing.
-take_job($_) for @wdisplays;
+for (@wdisplays) { $cv->begin; take_job($_) }
 
 #
 # Takes a test from the beginning of @testfiles and runs it.
@@ -154,8 +154,8 @@ take_job($_) for @wdisplays;
 sub take_job {
     my ($display) = @_;
 
-    my $test = shift @testfiles;
-    return unless $test;
+    my $test = shift @testfiles
+        or return $cv->end;
 
     my $dont_start = (slurp($test) =~ /# !NO_I3_INSTANCE!/);
     my $basename = basename($test);
@@ -288,7 +288,7 @@ sub take_job {
 
                         undef $_ for @watchers;
                         if (@done == $num) {
-                            $cv->send;
+                            $cv->end;
                         } else {
                             take_job($display);
                         }