diff --git a/libretro-common/queues/task_queue.c b/libretro-common/queues/task_queue.c index 90675980ee..81cd71916a 100644 --- a/libretro-common/queues/task_queue.c +++ b/libretro-common/queues/task_queue.c @@ -433,14 +433,11 @@ static void threaded_worker(void *userdata) continue; } + task_queue_remove(&tasks_running, task); slock_unlock(running_lock); task->handler(task); - slock_lock(running_lock); - task_queue_remove(&tasks_running, task); - slock_unlock(running_lock); - /* Update queue */ if (!task->finished) {