From: Rhys Perry Date: Thu, 26 Mar 2020 15:50:31 +0000 (+0000) Subject: util/u_queue: fix race in total_jobs_size access X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1ef9658906655edb6b2beaf2951a9dc81d93b827;p=mesa.git util/u_queue: fix race in total_jobs_size access Signed-off-by: Rhys Perry Reviewed-by: Eric Anholt CC: Tested-by: Marge Bot Part-of: --- diff --git a/src/util/u_queue.c b/src/util/u_queue.c index 97d674ce431..4049a4c7692 100644 --- a/src/util/u_queue.c +++ b/src/util/u_queue.c @@ -286,6 +286,8 @@ util_queue_thread_func(void *input) 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) { @@ -293,8 +295,6 @@ util_queue_thread_func(void *input) util_queue_fence_signal(job.fence); if (job.cleanup) job.cleanup(job.job, thread_index); - - queue->total_jobs_size -= job.job_size; } }