comparison piecrust/workerpool.py @ 702:c62d83e17abf

bake: Some more optimizations. Write the output files in a background thread to get away from the GIL.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 16 Apr 2016 22:50:07 -0700
parents 9e5393fcfab2
children 4850f8c21b6e
comparison
equal deleted inserted replaced
701:066d6156525c 702:c62d83e17abf
23 def process(self, job): 23 def process(self, job):
24 raise NotImplementedError() 24 raise NotImplementedError()
25 25
26 def getReport(self, pool_reports): 26 def getReport(self, pool_reports):
27 return None 27 return None
28
29 def shutdown(self):
30 pass
28 31
29 32
30 TASK_JOB = 0 33 TASK_JOB = 0
31 TASK_BATCH = 1 34 TASK_BATCH = 1
32 TASK_END = 2 35 TASK_END = 2
147 logger.debug("Worker %d waiting for reader/writer threads." % wid) 150 logger.debug("Worker %d waiting for reader/writer threads." % wid)
148 local_result_queue.put_nowait(None) 151 local_result_queue.put_nowait(None)
149 reader_thread.join() 152 reader_thread.join()
150 writer_thread.join() 153 writer_thread.join()
151 154
155 w.shutdown()
156
152 logger.debug("Worker %d completed %d tasks." % (wid, completed)) 157 logger.debug("Worker %d completed %d tasks." % (wid, completed))
153 158
154 159
155 def _job_queue_reader(getter, out_queue): 160 def _job_queue_reader(getter, out_queue):
156 while True: 161 while True: