Mercurial > hg > Papers > 2022 > soto-sigos
comparison Paper/src/metaCreateTask.cbc @ 0:14a0e409d574
ADD fast commit
author | soto <soto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 24 Apr 2022 23:13:44 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:14a0e409d574 |
---|---|
1 __code code1(struct Context *context, Integer *integer1, Integer *integer2, Integer *output) { | |
2 // create context | |
3 context->task = NEW(struct Context); | |
4 initContext(context->task); | |
5 | |
6 // set task parameter | |
7 context->task->next = C_add; | |
8 context->task->idgCount = 2; | |
9 context->task->idg = context->task->dataNum; | |
10 context->task->maxIdg = context->task->idg + 2; | |
11 context->task->odg = context->task->maxIdg; | |
12 context->task->maxOdg = context->task->odg + 1; | |
13 | |
14 // create Data Gear Queue | |
15 GET_META(integer1)->wait = createSynchronizedQueue(context); | |
16 GET_META(integer2)->wait = createSynchronizedQueue(context); | |
17 GET_META(integer3)->wait = createSynchronizedQueue(context); | |
18 | |
19 // set Input Data Gear | |
20 context->task->data[context->task->idg+0] = (union Data*)integer1; | |
21 context->task->data[context->task->idg+1] = (union Data*)integer2; | |
22 | |
23 // set Output Data Gear | |
24 context->task->data[context->task->odg+0] = (union Data*)integer3; | |
25 | |
26 // add taskList Element | |
27 struct Element* element; | |
28 element = &ALLOCATE(context, Element)->Element; | |
29 element->data = (union Data*)context->task; | |
30 element->next = context->taskList; | |
31 context->taskList = element; | |
32 | |
33 // set TaskManager->spawns parameter | |
34 Gearef(context, TaskManager)->taskList = context->taskList; | |
35 Gearef(context, TaskManager)->next1 = C_code2; | |
36 goto meta(context, C_code2); | |
37 } | |
38 | |
39 // code gear | |
40 __code add(Integer *integer1, Integer *integer2, next(Integer *output, ...)) { | |
41 .... | |
42 } |