Mercurial > hg > Papers > 2021 > anatofuz-master
view paper/src/twiceMeta.c @ 158:d2be76d48b00 default tip
update
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 17 Feb 2021 14:37:21 +0900 |
parents | 7b4d7d2446e6 |
children |
line wrap: on
line source
__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); }