summaryrefslogtreecommitdiff
path: root/tools/buildman
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2016-09-18 16:48:37 -0600
committersjg <sjg@chromium.org>2016-10-09 09:30:32 -0600
commit2f2566482fc5c24557126043394ce82088f60262 (patch)
treef70db51db971c1bbf3a1479dbac6be612109d925 /tools/buildman
parent63781bd65e70719dbab9f2f5bbe8aac7b8e0f13e (diff)
buildman: Don't show a stacktrace on Ctrl-C
When Ctrl-C is pressed, just exited quietly. There is no sense in displaying a stack trace since buildman will always be in the same place: waiting for threads to complete building all the jobs on the queue. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools/buildman')
-rw-r--r--tools/buildman/builder.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
index 5addbca44e9..e27a28577c2 100644
--- a/tools/buildman/builder.py
+++ b/tools/buildman/builder.py
@@ -12,6 +12,7 @@ import os
import re
import Queue
import shutil
+import signal
import string
import sys
import threading
@@ -282,11 +283,17 @@ class Builder:
ignore_lines = ['(make.*Waiting for unfinished)', '(Segmentation fault)']
self.re_make_err = re.compile('|'.join(ignore_lines))
+ # Handle existing graceful with SIGINT / Ctrl-C
+ signal.signal(signal.SIGINT, self.signal_handler)
+
def __del__(self):
"""Get rid of all threads created by the builder"""
for t in self.threads:
del t
+ def signal_handler(self, signal, frame):
+ sys.exit(1)
+
def SetDisplayOptions(self, show_errors=False, show_sizes=False,
show_detail=False, show_bloat=False,
list_error_boards=False, show_config=False):