comparison src/parallel_execution/main.c @ 125:77e60b6cdace

Work dependency example
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Tue, 27 Sep 2016 17:22:00 +0900
parents acf0453b1c7a
children 337fdbffa693
comparison
equal deleted inserted replaced
124:acf0453b1c7a 125:77e60b6cdace
326 __code createWorker(struct Context* context, struct LoopCounter* loopCounter, struct Worker* worker) { 326 __code createWorker(struct Context* context, struct LoopCounter* loopCounter, struct Worker* worker) {
327 int i = loopCounter->i; 327 int i = loopCounter->i;
328 328
329 if (i < worker->num) { 329 if (i < worker->num) {
330 struct Context* worker_context = &worker->contexts[i]; 330 struct Context* worker_context = &worker->contexts[i];
331 worker_context->next = InitWorker; 331 worker_context->next = GetTask;
332 worker_context->data[Tree] = context->data[Tree]; 332 worker_context->data[Tree] = context->data[Tree];
333 worker_context->data[ActiveQueue] = context->data[ActiveQueue]; 333 worker_context->data[ActiveQueue] = context->data[ActiveQueue];
334 worker_context->data[WaitQueue] = context->data[WaitQueue]; 334 worker_context->data[WaitQueue] = context->data[WaitQueue];
335 worker_context->data[Queue] = context->data[ActiveQueue]; 335 worker_context->data[Queue] = context->data[ActiveQueue];
336 pthread_create(&worker_context->thread, NULL, (void*)&start_code, worker_context); 336 pthread_create(&worker_context->thread, NULL, (void*)&start_code, worker_context);