void create_radavg_task(Element *e, long mode, long process_id) { /* Check existing parallelism */ if( (e->n_interactions < N_inter_parallel_bf_refine) || taskq_too_long(&global->task_queue[ taskqueue_id[process_id] ], n_tasks_per_queue) ) { /* Task size is too small or queue is too long. Solve it immediately */ radiosity_averaging( e, mode, process_id ) ; return ; } /* Put in the queue */ enqueue_radavg_task( taskqueue_id[process_id], e, mode, process_id ) ; }
static void _init_radavg_tasks(Patch *p, long mode, long process_id) { enqueue_radavg_task( p->seq_no % n_taskqueues, p->el_root, mode, process_id ) ; }