summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/bb/cooker.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index e781ff8b3..7de3df018 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -1993,7 +1993,8 @@ class Parser(multiprocessing.Process):
except queue.Empty:
pass
else:
- self.results.cancel_join_thread()
+ self.results.close()
+ self.results.join_thread()
break
if pending:
@@ -2002,6 +2003,8 @@ class Parser(multiprocessing.Process):
try:
job = self.jobs.pop()
except IndexError:
+ self.results.close()
+ self.results.join_thread()
break
result = self.parse(*job)
# Clear the siggen cache after parsing to control memory usage, its huge
@@ -2121,8 +2124,6 @@ class CookerParser(object):
bb.event.fire(event, self.cfgdata)
- # Allow data left in the cancel queue to be discarded
- self.parser_quit.cancel_join_thread()
for process in self.processes:
self.parser_quit.put(None)
@@ -2142,7 +2143,8 @@ class CookerParser(object):
process.join()
self.parser_quit.close()
- self.parser_quit.join_thread()
+ # Allow data left in the cancel queue to be discarded
+ self.parser_quit.cancel_join_thread()
def sync_caches():
for c in self.bb_caches.values():