From 3c231591484353f830416f9d3caf568c48fed421 Mon Sep 17 00:00:00 2001 From: Sebastien Ronsse Date: Wed, 4 May 2016 14:35:12 +1000 Subject: [PATCH] Fix deadlock due to missing unlock in task threaded find function --- libretro-common/queues/task_queue.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libretro-common/queues/task_queue.c b/libretro-common/queues/task_queue.c index 62f0b8dba4..489593e218 100644 --- a/libretro-common/queues/task_queue.c +++ b/libretro-common/queues/task_queue.c @@ -270,16 +270,20 @@ static bool retro_task_threaded_find( retro_task_finder_t func, void *user_data) { retro_task_t *task = NULL; + bool result = false; slock_lock(running_lock); for (task = tasks_running.front; task; task = task->next) { if (func(task, user_data)) - return true; + { + result = true; + break; + } } slock_unlock(running_lock); - return false; + return result; } static void threaded_worker(void *userdata)