summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulian Lettner <julian.lettner@gmail.com>2019-02-22 22:33:48 -0800
committerJulian Lettner <julian.lettner@apple.com>2019-10-30 15:09:43 -0700
commit4dba95f0ddd760138f3499c8aa7a18deff9ef70c (patch)
treefab87f0f0355b71262e8ebb163217e1206c0f45f
parent8f48ba993ba32925f37a374f624663da37d96254 (diff)
downloadbcm5719-llvm-4dba95f0ddd760138f3499c8aa7a18deff9ef70c.tar.gz
bcm5719-llvm-4dba95f0ddd760138f3499c8aa7a18deff9ef70c.zip
[lit] Extract `_install_win32_signal_handler` function
-rw-r--r--llvm/utils/lit/lit/run.py21
1 files changed, 12 insertions, 9 deletions
diff --git a/llvm/utils/lit/lit/run.py b/llvm/utils/lit/lit/run.py
index d24cfd47e5a..4971ce8c050 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)
OpenPOWER on IntegriCloud