From df2f6144319ae989c56ae8fd0c76ed9eed70f4a7 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 19 Jun 2018 13:30:26 -0400 Subject: [PATCH] eina_threadqueue: fix spinlock destruction by using spinlock api Summary: this would deadlock in some cases @fix Depends on D6297 Reviewers: ManMower, devilhorns Reviewed By: ManMower Subscribers: cedric, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D6298 --- src/lib/eina/eina_thread_queue.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/eina/eina_thread_queue.c b/src/lib/eina/eina_thread_queue.c index d5bee95c44..46cafcb54c 100644 --- a/src/lib/eina/eina_thread_queue.c +++ b/src/lib/eina/eina_thread_queue.c @@ -141,8 +141,8 @@ _eina_thread_queue_msg_block_real_free(Eina_Thread_Queue_Msg_Block *blk) eina_lock_release(&(blk->lock_non_0_ref)); eina_lock_free(&(blk->lock_non_0_ref)); #ifndef ATOMIC - eina_lock_take(&(blk->lock_ref)); - eina_lock_release(&(blk->lock_ref)); + eina_spinlock_take(&(blk->lock_ref)); + eina_spinlock_release(&(blk->lock_ref)); eina_spinlock_free(&(blk->lock_ref)); #endif free(blk);