changeset 1008:09c3d415d9e5

bake: Make `batch-size` option work again.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 25 Nov 2017 23:01:48 -0800
parents 09dc0240f08a
children cd0345e4001e
files piecrust/workerpool.py
diffstat 1 files changed, 8 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/piecrust/workerpool.py	Sat Nov 25 23:01:33 2017 -0800
+++ b/piecrust/workerpool.py	Sat Nov 25 23:01:48 2017 -0800
@@ -178,15 +178,15 @@
 
             for td in task_data_list:
                 try:
-                    res = w.process(td)
-                    result_list.append((td, res, True))
+                    worker_res = w.process(td)
+                    result_list.append((td, worker_res, True))
                 except Exception as e:
                     logger.debug(
                         "Error processing job, sending exception to main process:")
                     logger.debug(traceback.format_exc())
                     we = _get_worker_exception_data(wid)
-                    res = (td, we, False)
-                    result_list.append((td, res, False))
+                    error_res = (td, we, False)
+                    result_list.append((td, error_res, False))
 
             res = (task_type, wid, result_list)
             put_start_time = time.perf_counter()
@@ -384,9 +384,9 @@
 
         return True
 
-    def _onTaskDone(self):
+    def _onTaskDone(self, done_count):
         with self._lock_jobs_left:
-            left = self._jobs_left - 1
+            left = self._jobs_left - done_count
             self._jobs_left = left
 
         if left == 0:
@@ -431,8 +431,8 @@
                 except Exception as ex:
                     logger.exception(ex)
 
-            if task_type == TASK_JOB:
-                pool._onTaskDone()
+            if task_type == TASK_JOB or task_type == TASK_JOB_BATCH:
+                pool._onTaskDone(len(res_data_list))
 
 
 class _ReportHandler: