void init_queue (job_queue_t *q, unsigned long max_size, int (*repopulate_queue)(void*), void *repopulate_queue_par) { q->max_size = max_size; q->status = QUEUE_OK; q->repopulate_queue = repopulate_queue; q->repopulate_queue_par = repopulate_queue_par; reset_queue(q); q->buffer = (job_queue_node_t *) malloc(sizeof(job_queue_node_t) * q->max_size); LOG("Trying to allocate %lu bytes for the queue (max_size = %lu)\n", sizeof(job_queue_node_t) * q->max_size, q->max_size); assert(q->buffer != NULL); COND_VAR_INIT(q->cond_var); }
int main (int argc, char **argv) { struct main_pars pars = init_main_pars(argc, argv); COND_VAR_INIT(sync_barrier); MUTEX_INIT(main_lock); TRACE_INIT(); run_main(pars); free_main(pars); TRACE_END(); return 0; }