This patch is Reviewed-by: Ian Romanick <ian.d.roman...@intel.com>
On 11/28/18 6:59 PM, Marek Olšák wrote: > From: Marek Olšák <marek.ol...@amd.com> > > --- > src/util/u_queue.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/src/util/u_queue.c b/src/util/u_queue.c > index 5aaf60ae78e..612ad5e83c6 100644 > --- a/src/util/u_queue.c > +++ b/src/util/u_queue.c > @@ -582,29 +582,29 @@ util_queue_finish_execute(void *data, int num_thread) > util_barrier_wait(barrier); > } > > /** > * Wait until all previously added jobs have completed. > */ > void > util_queue_finish(struct util_queue *queue) > { > util_barrier barrier; > - struct util_queue_fence *fences = malloc(queue->num_threads * > sizeof(*fences)); > - > - util_barrier_init(&barrier, queue->num_threads); > + struct util_queue_fence *fences; > > /* If 2 threads were adding jobs for 2 different barries at the same time, > * a deadlock would happen, because 1 barrier requires that all threads > * wait for it exclusively. > */ > mtx_lock(&queue->finish_lock); > + fences = malloc(queue->num_threads * sizeof(*fences)); > + util_barrier_init(&barrier, queue->num_threads); > > for (unsigned i = 0; i < queue->num_threads; ++i) { > util_queue_fence_init(&fences[i]); > util_queue_add_job(queue, &barrier, &fences[i], > util_queue_finish_execute, NULL); > } > > for (unsigned i = 0; i < queue->num_threads; ++i) { > util_queue_fence_wait(&fences[i]); > util_queue_fence_destroy(&fences[i]); > } > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev