static void
global_init(void)
{
- LIST_INITHEAD(&queue_list);
+ list_inithead(&queue_list);
atexit(atexit_handler);
}
call_once(&atexit_once_flag, global_init);
mtx_lock(&exit_mutex);
- LIST_ADD(&queue->head, &queue_list);
+ list_add(&queue->head, &queue_list);
mtx_unlock(&exit_mutex);
}
mtx_lock(&exit_mutex);
LIST_FOR_EACH_ENTRY_SAFE(iter, tmp, &queue_list, head) {
if (iter == queue) {
- LIST_DEL(&iter->head);
+ list_del(&iter->head);
break;
}
}
queue->num_queued--;
cnd_signal(&queue->has_space_cond);
+ if (job.job)
+ queue->total_jobs_size -= job.job_size;
mtx_unlock(&queue->lock);
if (job.job) {
util_queue_fence_signal(job.fence);
if (job.cleanup)
job.cleanup(job.job, thread_index);
-
- queue->total_jobs_size -= job.job_size;
}
}