summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/cooker.py8
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)