diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-07-07 14:26:34 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-07-08 09:57:27 +0100 |
commit | 1b5688e0f0331ab9196cc534dabcade831a9090c (patch) | |
tree | c05c410838027212eb17cff2428429bf5b145d55 | |
parent | 1b930b41a5e677eea0adae3d247f43b77d1945f6 (diff) | |
download | poky-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.py | 16 |
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 |