summaryrefslogtreecommitdiff
path: root/poky/bitbake/lib/bb/ui/knotty.py
diff options
context:
space:
mode:
Diffstat (limited to 'poky/bitbake/lib/bb/ui/knotty.py')
-rw-r--r--poky/bitbake/lib/bb/ui/knotty.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/poky/bitbake/lib/bb/ui/knotty.py b/poky/bitbake/lib/bb/ui/knotty.py
index 88f638fb3..35736ade0 100644
--- a/poky/bitbake/lib/bb/ui/knotty.py
+++ b/poky/bitbake/lib/bb/ui/knotty.py
@@ -660,7 +660,6 @@ def main(server, eventHandler, params, tf = TerminalFilter):
# ignore
if isinstance(event, (bb.event.BuildBase,
bb.event.MetadataEvent,
- bb.event.StampUpdate,
bb.event.ConfigParsed,
bb.event.MultiConfigParsed,
bb.event.RecipeParsed,
@@ -690,17 +689,27 @@ def main(server, eventHandler, params, tf = TerminalFilter):
if params.observe_only:
print("\nKeyboard Interrupt, exiting observer...")
main.shutdown = 2
- if not params.observe_only and main.shutdown == 1:
+
+ def state_force_shutdown():
print("\nSecond Keyboard Interrupt, stopping...\n")
_, error = server.runCommand(["stateForceShutdown"])
if error:
logger.error("Unable to cleanly stop: %s" % error)
+
+ if not params.observe_only and main.shutdown == 1:
+ state_force_shutdown()
+
if not params.observe_only and main.shutdown == 0:
print("\nKeyboard Interrupt, closing down...\n")
interrupted = True
- _, error = server.runCommand(["stateShutdown"])
- if error:
- logger.error("Unable to cleanly shutdown: %s" % error)
+ # Capture the second KeyboardInterrupt during stateShutdown is running
+ try:
+ _, error = server.runCommand(["stateShutdown"])
+ if error:
+ logger.error("Unable to cleanly shutdown: %s" % error)
+ except KeyboardInterrupt:
+ state_force_shutdown()
+
main.shutdown = main.shutdown + 1
pass
except Exception as e: