|
@@ -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():
|