From 847e42d8683204d5f1ff64fb23b9deb8bf6403f4 Mon Sep 17 00:00:00 2001 From: Dan Fandrich Date: Wed, 14 Jun 2023 15:18:36 -0700 Subject: [PATCH] runtests: better handle ^C during slow tests Since the SIGINT handler now just sets a flag that must be checked in the main controller loop, make sure that runs periodically. Rather than blocking on a response from a test runner near the end of the test run, add a short timeout to allow it. --- tests/runtests.pl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/runtests.pl b/tests/runtests.pl index b1d894d720..83933bd7b1 100755 --- a/tests/runtests.pl +++ b/tests/runtests.pl @@ -2775,10 +2775,10 @@ while () { } # See if a test runner needs attention - # If we could be running more tests, wait just a moment so we can schedule - # a new one shortly. If all runners are busy, wait indefinitely for one to - # finish. - my $runnerwait = scalar(@runnersidle) && scalar(@runtests) ? 0 : undef; + # If we could be running more tests, don't wait so we can schedule a new + # one immediately. If all runners are busy, wait a fraction of a second + # for one to finish so we can still loop around to check the abort flag. + my $runnerwait = scalar(@runnersidle) && scalar(@runtests) ? 0 : 0.5; my $ridready = runnerar_ready($runnerwait); if($ridready) { # This runner is ready to be serviced -- 2.47.3