diff src/parallel_execution/dependency.c @ 125:77e60b6cdace

Work dependency example
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Tue, 27 Sep 2016 17:22:00 +0900
parents acf0453b1c7a
children
line wrap: on
line diff
--- a/src/parallel_execution/dependency.c	Tue Sep 27 16:19:31 2016 +0900
+++ b/src/parallel_execution/dependency.c	Tue Sep 27 17:22:00 2016 +0900
@@ -54,6 +54,7 @@
     struct Integer* integer = (struct Integer *)data;
     struct Queue* waitMeTasks = (struct Queue *)(integer + integer->mDataOffset / sizeof(struct Integer));
     context->next = CheckTaskFinish2;
+    waitMeTasks->emptyNext = GetTask;
     goto meta_checkTaskFinish1(context, waitMeTasks, GetQueue1);
 }
 
@@ -67,7 +68,6 @@
  */
 __code checkTaskFinish2(struct Context* context, struct Task* task) {
     // using cas?
-    //
     if (__sync_fetch_and_sub(&task->idsCount, 1)) {
         goto meta(context, GetQueue1);
     } else {