diff options
Diffstat (limited to 'bitbake/lib/bb/cooker.py')
-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 05be9bef67..33452e7b93 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
@@ -1674,6 +1674,7 @@ class BBCooker: | |||
1674 | 1674 | ||
1675 | if self.parser: | 1675 | if self.parser: |
1676 | self.parser.shutdown(clean=not force, force=force) | 1676 | self.parser.shutdown(clean=not force, force=force) |
1677 | self.parser.final_cleanup() | ||
1677 | 1678 | ||
1678 | def finishcommand(self): | 1679 | def finishcommand(self): |
1679 | self.state = state.initial | 1680 | self.state = state.initial |
@@ -2063,6 +2064,7 @@ class CookerParser(object): | |||
2063 | 2064 | ||
2064 | self.start() | 2065 | self.start() |
2065 | self.haveshutdown = False | 2066 | self.haveshutdown = False |
2067 | self.syncthread = None | ||
2066 | 2068 | ||
2067 | def start(self): | 2069 | def start(self): |
2068 | self.results = self.load_cached() | 2070 | self.results = self.load_cached() |
@@ -2132,8 +2134,8 @@ class CookerParser(object): | |||
2132 | c.sync() | 2134 | c.sync() |
2133 | 2135 | ||
2134 | sync = threading.Thread(target=sync_caches) | 2136 | sync = threading.Thread(target=sync_caches) |
2137 | self.syncthread = sync | ||
2135 | sync.start() | 2138 | sync.start() |
2136 | multiprocessing.util.Finalize(None, sync.join, exitpriority=-100) | ||
2137 | bb.codeparser.parser_cache_savemerge() | 2139 | bb.codeparser.parser_cache_savemerge() |
2138 | bb.fetch.fetcher_parse_done() | 2140 | bb.fetch.fetcher_parse_done() |
2139 | if self.cooker.configuration.profile: | 2141 | if self.cooker.configuration.profile: |
@@ -2147,6 +2149,10 @@ class CookerParser(object): | |||
2147 | bb.utils.process_profilelog(profiles, pout = pout) | 2149 | bb.utils.process_profilelog(profiles, pout = pout) |
2148 | print("Processed parsing statistics saved to %s" % (pout)) | 2150 | print("Processed parsing statistics saved to %s" % (pout)) |
2149 | 2151 | ||
2152 | def final_cleanup(self): | ||
2153 | if self.syncthread: | ||
2154 | self.syncthread.join() | ||
2155 | |||
2150 | def load_cached(self): | 2156 | def load_cached(self): |
2151 | for mc, cache, filename, appends in self.fromcache: | 2157 | for mc, cache, filename, appends in self.fromcache: |
2152 | cached, infos = cache.load(filename, appends) | 2158 | cached, infos = cache.load(filename, appends) |