diff --git a/runloop_data.c b/runloop_data.c index bd44c081c2..63d4749297 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 bool rarch_main_data_thread_init(void) +static void rarch_main_data_thread_init(void) { - if (g_data_runloop.thread_inited) - return false; + if (!g_data_runloop.thread_inited) + return; g_data_runloop.lock = slock_new(); g_data_runloop.cond_lock = slock_new(); @@ -205,11 +205,10 @@ static bool rarch_main_data_thread_init(void) g_data_runloop.thread_code = THREAD_CODE_ALIVE; slock_unlock(g_data_runloop.lock); - return true; + return; error: data_runloop_thread_deinit(); - return false; } #endif @@ -364,7 +363,9 @@ void rarch_main_data_msg_queue_push(unsigned type, #ifdef HAVE_THREADS if (settings->threaded_data_runloop_enable) { - if (!rarch_main_data_thread_init()) + if (!g_data_runloop.thread_inited) + rarch_main_data_thread_init(); + else { slock_lock(g_data_runloop.cond_lock); scond_signal(g_data_runloop.cond);