From a96d12e8bcf4ea191a1fa4871f5c878ce1b9abac Mon Sep 17 00:00:00 2001 From: LibretroAdmin Date: Mon, 22 Aug 2022 03:41:17 +0200 Subject: [PATCH] Put back property locking in threaded_gather_internal - without this, core updater tasks would crash/segfault - heap corruption --- libretro-common/queues/task_queue.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libretro-common/queues/task_queue.c b/libretro-common/queues/task_queue.c index a6bd055e02..1e7ecde401 100644 --- a/libretro-common/queues/task_queue.c +++ b/libretro-common/queues/task_queue.c @@ -392,6 +392,7 @@ static void retro_task_threaded_gather(void) { retro_task_t *task = NULL; + slock_lock(property_lock); slock_lock(running_lock); for (task = tasks_running.front; task; task = task->next) task_queue_push_progress(task); @@ -400,6 +401,7 @@ static void retro_task_threaded_gather(void) slock_lock(finished_lock); retro_task_internal_gather(); slock_unlock(finished_lock); + slock_unlock(property_lock); } static void retro_task_threaded_wait(retro_task_condition_fn_t cond, void* data)