view Paper/src/parGotoCreateTask.c @ 2:21b64e37e36d default tip

add
author mir3636
date Sat, 01 Dec 2018 18:57:18 +0900
parents
children
line wrap: on
line source

__code code1(struct Context *context,struct Integer* integer1, struct Integer* integer2, struct Integer* output) {
    struct Element* element;
                    context->task = NEW(struct Context);
                    initContext(context->task);
                    context->task->next = C_add;
                    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 + 1;
    GET_META(integer1)->wait = createSynchronizedQueue(context);
    GET_META(integer2)->wait = createSynchronizedQueue(context);
    GET_META(output)->wait = createSynchronizedQueue(context);
    context->task->data[context->task->idg+0] = (union Data*)integer1;
    context->task->data[context->task->idg+1] = (union Data*)integer2;
    context->task->data[context->task->odg+0] = (union Data*)output;
                    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 meta(context, C_code2);
}

__code code1_stub(struct Context* context) {
    Integer* integer1 = Gearef(context, Integer);
    Integer* integer2 = Gearef(context, Integer);
    Integer* output = Gearef(context, Integer);
    goto code1(context, integer1, integer2, output);
}