X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=testcases%2Flib%2FStartXServer.pm;h=434ca238f6dfc36370a92b5c2f265e68405ee950;hb=aa0b1f599f25cfe858ebbc7fa80d459bcdb2ae02;hp=86a37d926a34877958548bbd0182dc264fafe487;hpb=988cc3ccaf59a0c25d9df47337bb9bd8826f6b31;p=i3%2Fi3 diff --git a/testcases/lib/StartXServer.pm b/testcases/lib/StartXServer.pm index 86a37d92..434ca238 100644 --- a/testcases/lib/StartXServer.pm +++ b/testcases/lib/StartXServer.pm @@ -57,7 +57,7 @@ sub wait_for_x { =head2 start_xserver($parallel) Starts C<$parallel> (or number of cores * 2 if undef) Xephyr processes (see -http://www.freedesktop.org/wiki/Software/Xephyr/) and returns two arrayrefs: a +https://www.freedesktop.org/wiki/Software/Xephyr/) and returns two arrayrefs: a list of X11 display numbers to the Xephyr processes and a list of PIDs of the processes. @@ -69,15 +69,6 @@ sub start_xserver { my @displays = (); my @childpids = (); - $SIG{CHLD} = sub { - my $child = waitpid -1, POSIX::WNOHANG; - @pids = grep { $_ != $child } @pids; - return unless @pids == 0; - print STDERR "All X server processes died.\n"; - print STDERR "Use ./complete-run.pl --parallel 1 --keep-xserver-output\n"; - exit 1; - }; - # Yeah, I know it’s non-standard, but Perl’s POSIX module doesn’t have # _SC_NPROCESSORS_CONF. my $num_cores; @@ -101,6 +92,15 @@ sub start_xserver { say "Starting $parallel Xephyr instances, starting at :$displaynum..."; + $SIG{CHLD} = sub { + my $child = waitpid -1, POSIX::WNOHANG; + @pids = grep { $_ != $child } @pids; + return unless @pids == 0; + print STDERR "All X server processes died.\n"; + print STDERR "Use ./complete-run.pl --parallel 1 --keep-xserver-output\n"; + exit 1; + }; + my @sockets_waiting; for (1 .. $parallel) { my $socket = fork_xserver($keep_xserver_output, $displaynum,