Bug 1453426 - Kill invoked process on keyboard interrupt in mach build. draft
authorChris Manchester <cmanchester@mozilla.com>
Tue, 17 Apr 2018 15:30:27 -0700
changeset 783977 a4ac1cf7b65c9393ebbab28c31cbc29ac6092dbd
parent 783746 5ded36cb383d3ccafd9b6c231c5120dcdae196a2
child 783997 348859395d2bad6f1929d9676246d63a539e88be
push id106830
push userbmo:cmanchester@mozilla.com
push dateTue, 17 Apr 2018 23:25:02 +0000
bugs1453426
milestone61.0a1
Bug 1453426 - Kill invoked process on keyboard interrupt in mach build. MozReview-Commit-ID: IdnVrK6Gqtk
python/mach/mach/mixin/process.py
--- a/python/mach/mach/mixin/process.py
+++ b/python/mach/mach/mixin/process.py
@@ -131,17 +131,22 @@ class ProcessExecutionMixin(LoggingMixin
                     pass
         else:
             p = ProcessHandlerMixin(args, cwd=cwd, env=use_env,
                                     processOutputLine=[handleLine],
                                     universal_newlines=True,
                                     ignore_children=ignore_children)
             p.run()
             p.processOutput()
-            status = p.wait()
+            status = None
+            while status is None:
+                try:
+                    status = p.wait()
+                except KeyboardInterrupt:
+                    status = p.kill()
 
         if ensure_exit_code is False:
             return status
 
         if ensure_exit_code is True:
             ensure_exit_code = 0
 
         if status != ensure_exit_code: