[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.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:
async_results = [pool.apply_async(worker_run_one_test,
args=(test_index, test),
@ -126,16 +136,6 @@ class Run(object):
if not self.tests or jobs == 0:
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
# our task completion callback.
self.display = display