Mercurial > hg > Gears > GearsAgda
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) {