[lit] Try to improve Ctrl-C behavior on Windows

This functionality was broken during a refactor a while back because
'pool' is no longer in scope.

llvm-svn: 318572
This commit is contained in:
Reid Kleckner 2017-11-17 23:52:33 +00:00
parent 41bfed13ca
commit 6810c20c1b
1 changed files with 10 additions and 10 deletions

View File

@ -71,6 +71,16 @@ class Run(object):
(self.lit_config, (self.lit_config,
self.parallelism_semaphores)) self.parallelism_semaphores))
# Install a console-control signal handler on Windows.
if win32api is not None:
def console_ctrl_handler(type):
print('\nCtrl-C detected, terminating.')
pool.terminate()
pool.join()
abort_now()
return True
win32api.SetConsoleCtrlHandler(console_ctrl_handler, True)
try: try:
async_results = [pool.apply_async(worker_run_one_test, async_results = [pool.apply_async(worker_run_one_test,
args=(test_index, test), args=(test_index, test),
@ -126,16 +136,6 @@ class Run(object):
if not self.tests or jobs == 0: if not self.tests or jobs == 0:
return return
# Install a console-control signal handler on Windows.
if win32api is not None:
def console_ctrl_handler(type):
print('\nCtrl-C detected, terminating.')
pool.terminate()
pool.join()
abort_now()
return True
win32api.SetConsoleCtrlHandler(console_ctrl_handler, True)
# Save the display object on the runner so that we can update it from # Save the display object on the runner so that we can update it from
# our task completion callback. # our task completion callback.
self.display = display self.display = display