diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/bb/cooker.py | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py index 11cc2b954..4820d268e 100644 --- a/lib/bb/cooker.py +++ b/lib/bb/cooker.py @@ -2056,12 +2056,11 @@ class CookerParser(object): self.total) bb.event.fire(event, self.cfgdata) - for process in self.processes: - self.parser_quit.put(None) - else: - self.parser_quit.cancel_join_thread() - for process in self.processes: - self.parser_quit.put(None) + + # 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) # Cleanup the queue before call process.join(), otherwise there might be # deadlocks. @@ -2078,6 +2077,9 @@ class CookerParser(object): else: process.join() + self.parser_quit.close() + self.parser_quit.join_thread() + sync = threading.Thread(target=self.bb_cache.sync) sync.start() multiprocessing.util.Finalize(None, sync.join, exitpriority=-100) |