Mercurial > hg > Members > Moririn
view src/parallel_execution/worker.c @ 195:119c035e0e36
replace Array and Stack for array and stack
author | ikkun |
---|---|
date | Fri, 16 Dec 2016 23:27:14 +0900 |
parents | 39d87ba6039d |
children | c34e6aa10967 |
line wrap: on
line source
#include <libkern/OSAtomic.h> #include "context.h" #include "origin_cs.h" union Data* createWorker(struct Context* context) { struct Worker* worker = &ALLOCATE(context, Worker)->Worker; // worker->execute = C_executeWorker; // worker->taskSend = C_taskSendWorker; // worker->taskRecive = C_taskReciveWorker; // worker->shutdown = C_shutdownWorker; return (union Data*)(worker); } __code getTask1(struct Context* context, struct Queue* queue) { queue->next = C_getTask2; goto meta(context, queue->take); } __code getTask1_stub(struct Context* context) { goto getTask1(context,/* &context->data[D_ActiveQueue]->Queue*/ NULL); } __code getTask2(struct Context* context, struct Task* task, struct Node* node) { context->next = C_getTask1; goto meta(context, C_getTask2); } __code getTask2_stub(struct Context* context) { goto getTask2(context, /*&(context->data[D_ActiveQueue]->Queue.data->Task)*/ NULL, &context->data[D_Node]->node); } #ifdef USE_CUDA __code twiceGpu(struct Context* context) { cuMemcpyHtoDAsync(context,context,context,context->stream); cuLaunchkanel(); cuMemcpyDtoHAsync(); } #endif