summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/cooker.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/cooker.py')
-rw-r--r--bitbake/lib/bb/cooker.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index b041d2a06b..f12f4caa05 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -2036,6 +2036,7 @@ class Parser(multiprocessing.Process):
2036 result = pending.pop() 2036 result = pending.pop()
2037 else: 2037 else:
2038 try: 2038 try:
2039 time.sleep(0.25)
2039 job = self.jobs.pop() 2040 job = self.jobs.pop()
2040 except IndexError: 2041 except IndexError:
2041 self.results.close() 2042 self.results.close()
@@ -2214,7 +2215,7 @@ class CookerParser(object):
2214 yield not cached, mc, infos 2215 yield not cached, mc, infos
2215 2216
2216 def parse_generator(self): 2217 def parse_generator(self):
2217 while True: 2218 while self.processes:
2218 if self.parsed >= self.toparse: 2219 if self.parsed >= self.toparse:
2219 break 2220 break
2220 2221
@@ -2228,6 +2229,14 @@ class CookerParser(object):
2228 raise value 2229 raise value
2229 else: 2230 else:
2230 yield result 2231 yield result
2232 for process in self.processes.copy():
2233 if not process.is_alive():
2234 process.join()
2235 self.processes.remove(process)
2236
2237 if not (self.parsed >= self.toparse):
2238 raise bb.parse.ParseError("Not all recipes parsed, parser thread killed/died? Exiting.", None)
2239
2231 2240
2232 def parse_next(self): 2241 def parse_next(self):
2233 result = [] 2242 result = []