From 7dd06b1016b36420a9c55a45ff29dd64ae1dbcda Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 7 Jul 2016 14:26:34 +0100 Subject: [PATCH] knotty: Handle process indicators more gracefully Mistakes can happen with the generation of the progress events, change knotty to be more tolerant of this rather than crashing, reporting to the user when something unexpected happens. I haven't debugged why multiple finish events appear to be triggered. Signed-off-by: Richard Purdie --- lib/bb/ui/knotty.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/bb/ui/knotty.py b/lib/bb/ui/knotty.py index dbcb9c417b0..e8e169fe679 100644 --- a/lib/bb/ui/knotty.py +++ b/lib/bb/ui/knotty.py @@ -496,13 +496,16 @@ def main(server, eventHandler, params, tf = TerminalFilter): parseprogress = new_progress("Parsing recipes", event.total).start() continue if isinstance(event, bb.event.ParseProgress): - parseprogress.update(event.current) + if parseprogress: + parseprogress.update(event.current) + else: + bb.warn("Got ParseProgress event for parsing that never started?") continue if isinstance(event, bb.event.ParseCompleted): if not parseprogress: continue - parseprogress.finish() + pasreprogress = None if not params.options.quiet: print(("Parsing of %d .bb files complete (%d cached, %d parsed). %d targets, %d skipped, %d masked, %d errors." % ( event.total, event.cached, event.parsed, event.virtuals, event.skipped, event.masked, event.errors))) @@ -606,10 +609,15 @@ def main(server, eventHandler, params, tf = TerminalFilter): parseprogress.start(False) continue if isinstance(event, bb.event.ProcessProgress): - parseprogress.update(event.progress) + if parseprogress: + parseprogress.update(event.progress) + else: + bb.warn("Got ProcessProgress event for someting that never started?") continue if isinstance(event, bb.event.ProcessFinished): - parseprogress.finish() + if parseprogress: + parseprogress.finish() + parseprogress = None continue # ignore -- 2.47.3