summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/cooker.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index e781ff8b30..7de3df018d 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -1993,7 +1993,8 @@ class Parser(multiprocessing.Process):
1993 except queue.Empty: 1993 except queue.Empty:
1994 pass 1994 pass
1995 else: 1995 else:
1996 self.results.cancel_join_thread() 1996 self.results.close()
1997 self.results.join_thread()
1997 break 1998 break
1998 1999
1999 if pending: 2000 if pending:
@@ -2002,6 +2003,8 @@ class Parser(multiprocessing.Process):
2002 try: 2003 try:
2003 job = self.jobs.pop() 2004 job = self.jobs.pop()
2004 except IndexError: 2005 except IndexError:
2006 self.results.close()
2007 self.results.join_thread()
2005 break 2008 break
2006 result = self.parse(*job) 2009 result = self.parse(*job)
2007 # Clear the siggen cache after parsing to control memory usage, its huge 2010 # Clear the siggen cache after parsing to control memory usage, its huge
@@ -2121,8 +2124,6 @@ class CookerParser(object):
2121 2124
2122 bb.event.fire(event, self.cfgdata) 2125 bb.event.fire(event, self.cfgdata)
2123 2126
2124 # Allow data left in the cancel queue to be discarded
2125 self.parser_quit.cancel_join_thread()
2126 for process in self.processes: 2127 for process in self.processes:
2127 self.parser_quit.put(None) 2128 self.parser_quit.put(None)
2128 2129
@@ -2142,7 +2143,8 @@ class CookerParser(object):
2142 process.join() 2143 process.join()
2143 2144
2144 self.parser_quit.close() 2145 self.parser_quit.close()
2145 self.parser_quit.join_thread() 2146 # Allow data left in the cancel queue to be discarded
2147 self.parser_quit.cancel_join_thread()
2146 2148
2147 def sync_caches(): 2149 def sync_caches():
2148 for c in self.bb_caches.values(): 2150 for c in self.bb_caches.values():