Don't put overlay code on thread again

This commit is contained in:
twinaphex 2015-11-22 18:25:09 +01:00
parent 85aae0d0b5
commit f806e7b9c1
3 changed files with 25 additions and 88 deletions

View File

@ -69,9 +69,6 @@ static void data_runloop_thread_deinit(void)
slock_free(g_data_runloop.lock);
slock_free(g_data_runloop.cond_lock);
#ifdef HAVE_OVERLAY
rarch_main_data_overlay_thread_uninit();
#endif
scond_free(g_data_runloop.cond);
}
}
@ -195,10 +192,6 @@ static void rarch_main_data_thread_init(void)
g_data_runloop.cond_lock = slock_new();
g_data_runloop.cond = scond_new();
#ifdef HAVE_OVERLAY
rarch_main_data_overlay_thread_init();
#endif
g_data_runloop.thread = sthread_create(data_thread_loop, &g_data_runloop);
if (!g_data_runloop.thread)
@ -249,16 +242,13 @@ void rarch_main_data_iterate(void)
}
#endif
#ifdef HAVE_OVERLAY
rarch_main_data_overlay_image_upload_iterate(false);
#endif
#ifdef HAVE_RPNG
#ifdef HAVE_MENU
rarch_main_data_nbio_image_upload_iterate(false);
#endif
#endif
#ifdef HAVE_OVERLAY
rarch_main_data_overlay_iterate (false);
rarch_main_data_overlay_iterate();
#endif
#ifdef HAVE_MENU

View File

@ -14,81 +14,34 @@
*/
#include <retro_miscellaneous.h>
#ifdef HAVE_THREADS
#include <rthreads/rthreads.h>
#endif
#include "tasks.h"
#include "../input/input_overlay.h"
#ifdef HAVE_THREADS
static slock_t *overlay_lock;
#endif
void rarch_main_data_overlay_image_upload_iterate(bool is_thread)
void rarch_main_data_overlay_iterate(void)
{
#ifdef HAVE_THREADS
if (is_thread)
slock_lock(overlay_lock);
#endif
switch (input_overlay_status())
while (input_overlay_status() != OVERLAY_STATUS_NONE)
{
case OVERLAY_STATUS_DEFERRED_LOADING:
input_overlay_load_overlays_iterate();
break;
default:
break;
switch (input_overlay_status())
{
case OVERLAY_STATUS_DEFERRED_LOADING:
input_overlay_load_overlays_iterate();
break;
case OVERLAY_STATUS_DEFERRED_LOAD:
input_overlay_load_overlays();
break;
case OVERLAY_STATUS_DEFERRED_LOADING_RESOLVE:
input_overlay_load_overlays_resolve_iterate();
break;
case OVERLAY_STATUS_DEFERRED_DONE:
input_overlay_new_done();
break;
case OVERLAY_STATUS_DEFERRED_ERROR:
input_overlay_free();
break;
default:
case OVERLAY_STATUS_NONE:
break;
}
}
#ifdef HAVE_THREADS
if (is_thread)
slock_unlock(overlay_lock);
#endif
}
void rarch_main_data_overlay_iterate(bool is_thread)
{
#ifdef HAVE_THREADS
if (is_thread)
slock_lock(overlay_lock);
#endif
switch (input_overlay_status())
{
case OVERLAY_STATUS_DEFERRED_LOAD:
input_overlay_load_overlays();
break;
case OVERLAY_STATUS_DEFERRED_LOADING_RESOLVE:
input_overlay_load_overlays_resolve_iterate();
break;
case OVERLAY_STATUS_DEFERRED_DONE:
input_overlay_new_done();
break;
case OVERLAY_STATUS_DEFERRED_ERROR:
input_overlay_free();
break;
default:
case OVERLAY_STATUS_NONE:
break;
}
#ifdef HAVE_THREADS
if (is_thread)
slock_unlock(overlay_lock);
#endif
}
void rarch_main_data_overlay_thread_uninit(void)
{
#ifdef HAVE_THREADS
slock_free(overlay_lock);
#endif
}
void rarch_main_data_overlay_thread_init(void)
{
#ifdef HAVE_THREADS
overlay_lock = slock_new();
#endif
}

View File

@ -90,13 +90,7 @@ bool rarch_main_data_db_is_active(void);
#endif
#ifdef HAVE_OVERLAY
void rarch_main_data_overlay_image_upload_iterate(bool is_thread);
void rarch_main_data_overlay_iterate(bool is_thread);
void rarch_main_data_overlay_thread_uninit(void);
void rarch_main_data_overlay_thread_init(void);
void rarch_main_data_overlay_iterate(void);
#endif
void rarch_main_data_nbio_iterate(bool is_thread);