From 93720ff8c76810a05b6d133a9ba998ba112a3670 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 22 Nov 2015 16:34:02 +0100 Subject: [PATCH] Reimplement threading init for data runloop - data runloop was never set correctly to threaded mode --- runloop_data.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/runloop_data.c b/runloop_data.c index 63d4749297..bd44c081c2 100644 --- a/runloop_data.c +++ b/runloop_data.c @@ -181,10 +181,10 @@ static void data_thread_loop(void *data) #endif #ifdef HAVE_THREADS -static void rarch_main_data_thread_init(void) +static bool rarch_main_data_thread_init(void) { - if (!g_data_runloop.thread_inited) - return; + if (g_data_runloop.thread_inited) + return false; g_data_runloop.lock = slock_new(); g_data_runloop.cond_lock = slock_new(); @@ -205,10 +205,11 @@ static void rarch_main_data_thread_init(void) g_data_runloop.thread_code = THREAD_CODE_ALIVE; slock_unlock(g_data_runloop.lock); - return; + return true; error: data_runloop_thread_deinit(); + return false; } #endif @@ -363,9 +364,7 @@ void rarch_main_data_msg_queue_push(unsigned type, #ifdef HAVE_THREADS if (settings->threaded_data_runloop_enable) { - if (!g_data_runloop.thread_inited) - rarch_main_data_thread_init(); - else + if (!rarch_main_data_thread_init()) { slock_lock(g_data_runloop.cond_lock); scond_signal(g_data_runloop.cond);