summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 06b40c138b..8ae8e4ecc7 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -2040,6 +2040,7 @@ class Parser(multiprocessing.Process):
2040 result = pending.pop() 2040 result = pending.pop()
2041 else: 2041 else:
2042 try: 2042 try:
2043 time.sleep(0.25)
2043 job = self.jobs.pop() 2044 job = self.jobs.pop()
2044 except IndexError: 2045 except IndexError:
2045 self.results.close() 2046 self.results.close()
@@ -2218,7 +2219,7 @@ class CookerParser(object):
2218 yield not cached, mc, infos 2219 yield not cached, mc, infos
2219 2220
2220 def parse_generator(self): 2221 def parse_generator(self):
2221 while True: 2222 while self.processes:
2222 if self.parsed >= self.toparse: 2223 if self.parsed >= self.toparse:
2223 break 2224 break
2224 2225
@@ -2232,6 +2233,14 @@ class CookerParser(object):
2232 raise value 2233 raise value
2233 else: 2234 else:
2234 yield result 2235 yield result
2236 for process in self.processes.copy():
2237 if not process.is_alive():
2238 process.join()
2239 self.processes.remove(process)
2240
2241 if not (self.parsed >= self.toparse):
2242 raise bb.parse.ParseError("Not all recipes parsed, parser thread killed/died? Exiting.", None)
2243
2235 2244
2236 def parse_next(self): 2245 def parse_next(self):
2237 result = [] 2246 result = []