Mercurial > hg > Members > Moririn
diff src/parallel_execution/worker.c @ 247:ce262b2c1daf
Fix createTask for main
author | Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 25 Jan 2017 04:14:50 +0900 |
parents | d1567718f12c |
children | 1ede5390cda2 |
line wrap: on
line diff
--- a/src/parallel_execution/worker.c Wed Jan 25 03:07:59 2017 +0900 +++ b/src/parallel_execution/worker.c Wed Jan 25 04:14:50 2017 +0900 @@ -21,18 +21,19 @@ CPUWorker* cpuWorker = (CPUWorker*)worker->worker; cpuWorker->context = NEW(struct Context); initContext(cpuWorker->context); + Gearef(cpuWorker->context, Worker)->worker = (union Data*)worker; pthread_cond_wait(&cpuWorker->cond, &cpuWorker->mutex); goto meta(cpuWorker->context, C_taskReceiveWorker); } -__code taskReceiveWorker(struct Context* context, Worker* worker) { - Queue* queue = worker->tasks; +__code taskReceiveWorker(struct Context* context, Worker* worker, Queue* queue) { + queue->queue = (union Data*)worker->tasks; queue->next = C_getTask1; goto meta(context, queue->take); } __code taskReceiveWorker_stub(struct Context* context) { - goto taskReceiveWorker(context, Gearef(context, Worker)); + goto taskReceiveWorker(context, &Gearef(context, Worker)->worker->Worker, Gearef(context, Queue)); } __code getTask1(struct Context* context, Worker* worker, struct Context* task) { @@ -43,9 +44,9 @@ } __code getTask1_stub(struct Context* context) { - Worker* worker = Gearef(context,Worker); - Context* task = &worker->tasks->data->context; - goto getTask1(context,worker,task); + Worker* worker = &Gearef(context,Worker)->worker->Worker; + Context* task = &Gearef(context, Queue)->data->context; + goto getTask1(context, worker, task); } #ifdef USE_CUDA