diff options
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/cooker.py | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 11cc2b9546..4820d268e2 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
@@ -2056,12 +2056,11 @@ class CookerParser(object): | |||
2056 | self.total) | 2056 | self.total) |
2057 | 2057 | ||
2058 | bb.event.fire(event, self.cfgdata) | 2058 | bb.event.fire(event, self.cfgdata) |
2059 | for process in self.processes: | 2059 | |
2060 | self.parser_quit.put(None) | 2060 | # Allow data left in the cancel queue to be discarded |
2061 | else: | 2061 | self.parser_quit.cancel_join_thread() |
2062 | self.parser_quit.cancel_join_thread() | 2062 | for process in self.processes: |
2063 | for process in self.processes: | 2063 | self.parser_quit.put(None) |
2064 | self.parser_quit.put(None) | ||
2065 | 2064 | ||
2066 | # Cleanup the queue before call process.join(), otherwise there might be | 2065 | # Cleanup the queue before call process.join(), otherwise there might be |
2067 | # deadlocks. | 2066 | # deadlocks. |
@@ -2078,6 +2077,9 @@ class CookerParser(object): | |||
2078 | else: | 2077 | else: |
2079 | process.join() | 2078 | process.join() |
2080 | 2079 | ||
2080 | self.parser_quit.close() | ||
2081 | self.parser_quit.join_thread() | ||
2082 | |||
2081 | sync = threading.Thread(target=self.bb_cache.sync) | 2083 | sync = threading.Thread(target=self.bb_cache.sync) |
2082 | sync.start() | 2084 | sync.start() |
2083 | multiprocessing.util.Finalize(None, sync.join, exitpriority=-100) | 2085 | multiprocessing.util.Finalize(None, sync.join, exitpriority=-100) |