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) diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index 2123756b7a..fc1d1f444b 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -1393,8 +1393,12 @@ static void cb_generic_download(void *task_data, if (string_is_equal_noncase(file_ext, "zip")) { - rarch_task_push_decompress(output_path, dir_path, NULL, NULL, NULL, - cb_decompressed, (void*)(uintptr_t)transf->type_hash); + if (!rarch_task_push_decompress(output_path, dir_path, NULL, NULL, NULL, + cb_decompressed, (void*)(uintptr_t)transf->type_hash)) + { + err = "Decompression failed."; + goto finish; + } } #else switch (transf->type_hash)