mirror of
https://github.com/libretro/RetroArch
synced 2025-01-29 18:32:44 +00:00
(retroarch.c) Add RARCH_CTL_IS_MAIN_THREAD
This commit is contained in:
parent
471ff4a999
commit
dd36cff174
20
retroarch.c
20
retroarch.c
@ -42,7 +42,7 @@
|
||||
#include <retro_stat.h>
|
||||
#include <retro_assert.h>
|
||||
#include <retro_miscellaneous.h>
|
||||
|
||||
#include <rthreads/rthreads.h>
|
||||
#include <features/features_cpu.h>
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
@ -1108,6 +1108,10 @@ bool rarch_ctl(enum rarch_ctl_state state, void *data)
|
||||
static bool rarch_ips_pref = false;
|
||||
static bool rarch_patch_blocked = false;
|
||||
settings_t *settings = config_get_ptr();
|
||||
#ifdef HAVE_THREADS
|
||||
static sthread_tls_t rarch_tls;
|
||||
const void *MAGIC_POINTER = (void*)0xB16B00B5;
|
||||
#endif
|
||||
|
||||
switch(state)
|
||||
{
|
||||
@ -1218,9 +1222,17 @@ bool rarch_ctl(enum rarch_ctl_state state, void *data)
|
||||
path_deinit_savefile();
|
||||
|
||||
rarch_ctl(RARCH_CTL_UNSET_INITED, NULL);
|
||||
|
||||
#ifdef HAVE_THREADS
|
||||
sthread_tls_delete(&rarch_tls);
|
||||
#endif
|
||||
break;
|
||||
case RARCH_CTL_INIT:
|
||||
rarch_ctl(RARCH_CTL_DEINIT, NULL);
|
||||
#ifdef HAVE_THREADS
|
||||
sthread_tls_create(&rarch_tls);
|
||||
sthread_tls_set(&rarch_tls, MAGIC_POINTER);
|
||||
#endif
|
||||
retroarch_init_state();
|
||||
{
|
||||
unsigned i;
|
||||
@ -1306,6 +1318,12 @@ bool rarch_ctl(enum rarch_ctl_state state, void *data)
|
||||
command_event(CMD_EVENT_OVERLAY_INIT, NULL);
|
||||
#endif
|
||||
break;
|
||||
case RARCH_CTL_IS_MAIN_THREAD:
|
||||
#ifdef HAVE_THREADS
|
||||
return sthread_tls_get(&rarch_tls) == MAGIC_POINTER;
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
case RARCH_CTL_NONE:
|
||||
default:
|
||||
return false;
|
||||
|
@ -106,8 +106,9 @@ enum rarch_ctl_state
|
||||
/* Username */
|
||||
RARCH_CTL_HAS_SET_USERNAME,
|
||||
RARCH_CTL_USERNAME_SET,
|
||||
RARCH_CTL_USERNAME_UNSET
|
||||
RARCH_CTL_USERNAME_UNSET,
|
||||
|
||||
RARCH_CTL_IS_MAIN_THREAD
|
||||
};
|
||||
|
||||
enum rarch_capabilities
|
||||
|
Loading…
x
Reference in New Issue
Block a user