diff --git a/libretro-common/queues/task_queue.c b/libretro-common/queues/task_queue.c index 81cd71916a..90675980ee 100644 --- a/libretro-common/queues/task_queue.c +++ b/libretro-common/queues/task_queue.c @@ -433,11 +433,14 @@ 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) {