diff options
author | Ed Bartosh <ed.bartosh@linux.intel.com> | 2016-02-04 19:23:39 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-02-06 23:13:47 +0000 |
commit | 916c73dfefe0c4f960299ead6b4b7b3dcb18fc89 (patch) | |
tree | b7c043c5efb24163d3acd3958629aeb3933cd17e /bitbake/lib/bb/cooker.py | |
parent | 8857498ba4a9243fda1b79f2a359ec8e4139c6c3 (diff) | |
download | poky-916c73dfefe0c4f960299ead6b4b7b3dcb18fc89.tar.gz |
bitbake: cooker: shutdown cooker parser on shutdown
Currently any not catched exception in cooker causes bitbake
to hang because of not terminated children of CookerParser.
Long term solution would be to reimplement Cooker as a context
manager and terminate parser children in its __exit__ method.
Partial fix is to call CookerParser.shutdown in Cooker.shutdown in
hope that all Cooker exceptions are caught and shutdown method is
called.
[YOCTO #8900]
(Bitbake rev: 3f67600dc3292bc8208644ce89e8bf7ab95cf2e7)
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/cooker.py')
-rw-r--r-- | bitbake/lib/bb/cooker.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index edd682bf0a..df730f6fe7 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
@@ -1635,6 +1635,9 @@ class BBCooker: | |||
1635 | else: | 1635 | else: |
1636 | self.state = state.shutdown | 1636 | self.state = state.shutdown |
1637 | 1637 | ||
1638 | if self.parser: | ||
1639 | self.parser.shutdown(clean=not force, force=force) | ||
1640 | |||
1638 | def finishcommand(self): | 1641 | def finishcommand(self): |
1639 | self.state = state.initial | 1642 | self.state = state.initial |
1640 | 1643 | ||