diff src/parallel_execution/CPUWorker.cbc @ 405:8915fce522b3

Fix shutdown TaskManager
author Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
date Tue, 05 Sep 2017 16:46:31 +0900
parents ad44fdb11433
children 85b0ddbf458e
line wrap: on
line diff
--- a/src/parallel_execution/CPUWorker.cbc	Sun Sep 03 00:21:16 2017 +0900
+++ b/src/parallel_execution/CPUWorker.cbc	Tue Sep 05 16:46:31 2017 +0900
@@ -68,20 +68,23 @@
     goto iterateCommit1(workerContext, context);
 }
 
-__code odgCommit(struct LoopCounter* loopCounter, struct Context* task) {
+__code odgCommit(struct LoopCounter* loopCounter, struct Context* task, struct TaskManager* taskManager) {
     int i = loopCounter->i ;
     if (task->odg+i < task->maxOdg) {
         goto meta(task, C_odgCommit1);
     }
     loopCounter->i = 0;
-    goto meta(context, C_taskReceiveWorker);
+    taskManager->taskManager = (union Data*)task->taskManager;
+    taskManager->next = C_taskReceiveWorker;
+    goto meta(context, task->taskManager->decrementTaskCount);
 }
 
 __code odgCommit_stub(struct Context* context) {
     struct Context* workerContext = context->worker->worker->CPUWorker.context;
     goto odgCommit(workerContext,
                    Gearef(context, LoopCounter),
-                   context);
+                   context,
+                   Gearef(workerContext, TaskManager));
 }
 
 __code odgCommit1(struct LoopCounter* loopCounter, struct Queue* queue) {