diff options
| -rw-r--r-- | bitbake/lib/bb/cooker.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 4820d268e2..8788457423 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
| @@ -1650,6 +1650,7 @@ class BBCooker: | |||
| 1650 | 1650 | ||
| 1651 | if self.parser: | 1651 | if self.parser: |
| 1652 | self.parser.shutdown(clean=not force, force=force) | 1652 | self.parser.shutdown(clean=not force, force=force) |
| 1653 | self.parser.final_cleanup() | ||
| 1653 | 1654 | ||
| 1654 | def finishcommand(self): | 1655 | def finishcommand(self): |
| 1655 | self.state = state.initial | 1656 | self.state = state.initial |
| @@ -2015,6 +2016,7 @@ class CookerParser(object): | |||
| 2015 | 2016 | ||
| 2016 | self.start() | 2017 | self.start() |
| 2017 | self.haveshutdown = False | 2018 | self.haveshutdown = False |
| 2019 | self.syncthread = None | ||
| 2018 | 2020 | ||
| 2019 | def start(self): | 2021 | def start(self): |
| 2020 | self.results = self.load_cached() | 2022 | self.results = self.load_cached() |
| @@ -2081,8 +2083,8 @@ class CookerParser(object): | |||
| 2081 | self.parser_quit.join_thread() | 2083 | self.parser_quit.join_thread() |
| 2082 | 2084 | ||
| 2083 | sync = threading.Thread(target=self.bb_cache.sync) | 2085 | sync = threading.Thread(target=self.bb_cache.sync) |
| 2086 | self.syncthread = sync | ||
| 2084 | sync.start() | 2087 | sync.start() |
| 2085 | multiprocessing.util.Finalize(None, sync.join, exitpriority=-100) | ||
| 2086 | bb.codeparser.parser_cache_savemerge() | 2088 | bb.codeparser.parser_cache_savemerge() |
| 2087 | bb.fetch.fetcher_parse_done() | 2089 | bb.fetch.fetcher_parse_done() |
| 2088 | if self.cooker.configuration.profile: | 2090 | if self.cooker.configuration.profile: |
| @@ -2096,6 +2098,10 @@ class CookerParser(object): | |||
| 2096 | bb.utils.process_profilelog(profiles, pout = pout) | 2098 | bb.utils.process_profilelog(profiles, pout = pout) |
| 2097 | print("Processed parsing statistics saved to %s" % (pout)) | 2099 | print("Processed parsing statistics saved to %s" % (pout)) |
| 2098 | 2100 | ||
| 2101 | def final_cleanup(self): | ||
| 2102 | if self.syncthread: | ||
| 2103 | self.syncthread.join() | ||
| 2104 | |||
| 2099 | def load_cached(self): | 2105 | def load_cached(self): |
| 2100 | for filename, appends in self.fromcache: | 2106 | for filename, appends in self.fromcache: |
| 2101 | cached, infos = self.bb_cache.load(filename, appends) | 2107 | cached, infos = self.bb_cache.load(filename, appends) |
