summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2016-07-07 14:26:34 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-07-08 09:57:27 +0100
commit1b5688e0f0331ab9196cc534dabcade831a9090c (patch)
treec05c410838027212eb17cff2428429bf5b145d55
parent1b930b41a5e677eea0adae3d247f43b77d1945f6 (diff)
downloadpoky-1b5688e0f0331ab9196cc534dabcade831a9090c.tar.gz
bitbake: 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. (Bitbake rev: 7dd06b1016b36420a9c55a45ff29dd64ae1dbcda) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--bitbake/lib/bb/ui/knotty.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py
index dbcb9c417b..e8e169fe67 100644
--- a/bitbake/lib/bb/ui/knotty.py
+++ b/bitbake/lib/bb/ui/knotty.py
@@ -496,13 +496,16 @@ def main(server, eventHandler, params, tf = TerminalFilter):
496 parseprogress = new_progress("Parsing recipes", event.total).start() 496 parseprogress = new_progress("Parsing recipes", event.total).start()
497 continue 497 continue
498 if isinstance(event, bb.event.ParseProgress): 498 if isinstance(event, bb.event.ParseProgress):
499 parseprogress.update(event.current) 499 if parseprogress:
500 parseprogress.update(event.current)
501 else:
502 bb.warn("Got ParseProgress event for parsing that never started?")
500 continue 503 continue
501 if isinstance(event, bb.event.ParseCompleted): 504 if isinstance(event, bb.event.ParseCompleted):
502 if not parseprogress: 505 if not parseprogress:
503 continue 506 continue
504
505 parseprogress.finish() 507 parseprogress.finish()
508 pasreprogress = None
506 if not params.options.quiet: 509 if not params.options.quiet:
507 print(("Parsing of %d .bb files complete (%d cached, %d parsed). %d targets, %d skipped, %d masked, %d errors." 510 print(("Parsing of %d .bb files complete (%d cached, %d parsed). %d targets, %d skipped, %d masked, %d errors."
508 % ( event.total, event.cached, event.parsed, event.virtuals, event.skipped, event.masked, event.errors))) 511 % ( 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):
606 parseprogress.start(False) 609 parseprogress.start(False)
607 continue 610 continue
608 if isinstance(event, bb.event.ProcessProgress): 611 if isinstance(event, bb.event.ProcessProgress):
609 parseprogress.update(event.progress) 612 if parseprogress:
613 parseprogress.update(event.progress)
614 else:
615 bb.warn("Got ProcessProgress event for someting that never started?")
610 continue 616 continue
611 if isinstance(event, bb.event.ProcessFinished): 617 if isinstance(event, bb.event.ProcessFinished):
612 parseprogress.finish() 618 if parseprogress:
619 parseprogress.finish()
620 parseprogress = None
613 continue 621 continue
614 622
615 # ignore 623 # ignore