From 26db5d5056a948dc41da65b88a87e575ed21c1eb Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Fri, 5 Aug 2016 23:51:03 +0900 Subject: [PATCH] eina thread queue - ensure blocks cannot be freed until lock+unlock just in case... check blocks cannot be freed until locked and unlocked just in case someone still is holding a lock. --- src/lib/eina/eina_thread_queue.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/lib/eina/eina_thread_queue.c b/src/lib/eina/eina_thread_queue.c index 190d772f82..d5bee95c44 100644 --- a/src/lib/eina/eina_thread_queue.c +++ b/src/lib/eina/eina_thread_queue.c @@ -137,8 +137,12 @@ _eina_thread_queue_msg_block_new(int size) static void _eina_thread_queue_msg_block_real_free(Eina_Thread_Queue_Msg_Block *blk) { + eina_lock_take(&(blk->lock_non_0_ref)); + 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_free(&(blk->lock_ref)); #endif free(blk);