From: Julian Lettner Date: Sat, 23 Feb 2019 06:33:48 +0000 (-0800) Subject: [lit] Extract `_install_win32_signal_handler` function X-Git-Tag: llvmorg-11-init~5432 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4dba95f0ddd760138f3499c8aa7a18deff9ef70c;p=platform%2Fupstream%2Fllvm.git [lit] Extract `_install_win32_signal_handler` function --- diff --git a/llvm/utils/lit/lit/run.py b/llvm/utils/lit/lit/run.py index d24cfd4..4971ce8 100644 --- a/llvm/utils/lit/lit/run.py +++ b/llvm/utils/lit/lit/run.py @@ -121,15 +121,7 @@ class ParallelRun(Run): pool = multiprocessing.Pool(self.workers, lit.worker.initialize, (self.lit_config, semaphores)) - # Install a console-control signal handler on Windows. - if lit.util.win32api is not None: - def console_ctrl_handler(type): - print('\nCtrl-C detected, terminating.') - pool.terminate() - pool.join() - lit.util.abort_now() - return True - lit.util.win32api.SetConsoleCtrlHandler(console_ctrl_handler, True) + self._install_win32_signal_handler(pool) async_results = [ pool.apply_async(lit.worker.execute, args=[test], @@ -148,6 +140,7 @@ class ParallelRun(Run): if self.hit_max_failures: pool.terminate() break + pool.join() # TODO(yln): interferes with progress bar # Some tests use threads internally, and at least on Linux each of these @@ -171,3 +164,13 @@ class ParallelRun(Run): (soft_limit, desired_limit)) except Exception as ex: self.lit_config.warning('Failed to raise process limit: %s' % ex) + + def _install_win32_signal_handler(self, pool): + if lit.util.win32api is not None: + def console_ctrl_handler(type): + print('\nCtrl-C detected, terminating.') + pool.terminate() + pool.join() + lit.util.abort_now() + return True + lit.util.win32api.SetConsoleCtrlHandler(console_ctrl_handler, True)