diff paper/src/twiceMeta.c @ 99:7b4d7d2446e6

update
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Sat, 06 Feb 2021 07:11:56 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/src/twiceMeta.c	Sat Feb 06 07:11:56 2021 +0900
@@ -0,0 +1,60 @@
+__code createTask1(struct Context *context,struct LoopCounter* loopCounter, struct TaskManager* taskManager) {
+    Array* array1 = &ALLOCATE(context, Array)->Array;
+    Array* array2 = &ALLOCATE(context, Array)->Array;
+    Timer* timer = createTimerImpl(context);
+
+    struct Element* element;
+                    context->task = NEW(struct Context);
+                    initContext(context->task);
+                    context->task->next = C_createArray;
+                    context->task->idgCount = 0;
+                    context->task->idg = context->task->dataNum;
+                    context->task->maxIdg = context->task->idg + 0;
+                    context->task->odg = context->task->maxIdg;
+                    context->task->maxOdg = context->task->odg + 2;
+    GET_META(array1)->wait = createSynchronizedQueue(context);
+    GET_META(timer)->wait = createSynchronizedQueue(context);
+    context->task->data[context->task->odg+0] = (union Data*)array1;
+    context->task->data[context->task->odg+1] = (union Data*)timer;
+                    element = &ALLOCATE(context, Element)->Element;
+                    element->data = (union Data*)context->task;
+                    element->next = context->taskList;
+                    context->taskList = element;
+                    context->task = NEW(struct Context);
+                    initContext(context->task);
+                    context->task->next = C_twice;
+                    context->task->idgCount = 1;
+                    context->task->idg = context->task->dataNum;
+                    context->task->maxIdg = context->task->idg + 1;
+                    context->task->odg = context->task->maxIdg;
+                    context->task->maxOdg = context->task->odg + 1;
+    context->task->iterate = 0;
+    context->task->iterator = createMultiDimIterator(context, split, 1, 1);
+    GET_META(array1)->wait = createSynchronizedQueue(context);
+    GET_META(array2)->wait = createSynchronizedQueue(context);
+    context->task->data[context->task->idg+0] = (union Data*)array1;
+    context->task->data[context->task->odg+0] = (union Data*)array2;
+                    element = &ALLOCATE(context, Element)->Element;
+                    element->data = (union Data*)context->task;
+                    element->next = context->taskList;
+                    context->taskList = element;
+                    context->task = NEW(struct Context);
+                    initContext(context->task);
+                    context->task->next = C_printArray;
+                    context->task->idgCount = 2;
+                    context->task->idg = context->task->dataNum;
+                    context->task->maxIdg = context->task->idg + 2;
+                    context->task->odg = context->task->maxIdg;
+                    context->task->maxOdg = context->task->odg + 0;
+    GET_META(array2)->wait = createSynchronizedQueue(context);
+    GET_META(timer)->wait = createSynchronizedQueue(context);
+    context->task->data[context->task->idg+0] = (union Data*)array2;
+    context->task->data[context->task->idg+1] = (union Data*)timer;
+                    element = &ALLOCATE(context, Element)->Element;
+                    element->data = (union Data*)context->task;
+                    element->next = context->taskList;
+                    context->taskList = element;
+    Gearef(context, TaskManager)->taskList = context->taskList;
+    Gearef(context, TaskManager)->next1 = C_code2;
+    goto parGotoMeta(context, C_code2);
+}