mirror of
https://github.com/libretro/RetroArch
synced 2025-03-02 19:13:34 +00:00
Wrap all access of runloop_shutdown_initiated
This commit is contained in:
parent
96b7f9fd9e
commit
d3f58bb65c
11
retroarch.c
11
retroarch.c
@ -1914,6 +1914,9 @@ bool rarch_ctl(enum rarch_ctl_state state, void *data)
|
||||
case RARCH_CTL_SET_SHUTDOWN:
|
||||
runloop_shutdown_initiated = true;
|
||||
break;
|
||||
case RARCH_CTL_UNSET_SHUTDOWN:
|
||||
runloop_shutdown_initiated = false;
|
||||
break;
|
||||
case RARCH_CTL_IS_SHUTDOWN:
|
||||
return runloop_shutdown_initiated;
|
||||
case RARCH_CTL_DATA_DEINIT:
|
||||
@ -2396,7 +2399,7 @@ void retroarch_fail(int error_code, const char *error)
|
||||
|
||||
bool retroarch_main_quit(void)
|
||||
{
|
||||
if (!runloop_shutdown_initiated)
|
||||
if (!case_ctl(RARCH_CTL_IS_SHUTDOWN, NULL))
|
||||
{
|
||||
command_event(CMD_EVENT_AUTOSAVE_STATE, NULL);
|
||||
command_event(CMD_EVENT_DISABLE_OVERRIDES, NULL);
|
||||
@ -2404,7 +2407,7 @@ bool retroarch_main_quit(void)
|
||||
command_event(CMD_EVENT_RESTORE_REMAPS, NULL);
|
||||
}
|
||||
|
||||
runloop_shutdown_initiated = true;
|
||||
rarch_ctl(RARCH_CTL_SET_SHUTDOWN, NULL);
|
||||
rarch_menu_running_finished();
|
||||
|
||||
#ifdef HAVE_DISCORD
|
||||
@ -2484,7 +2487,7 @@ bool runloop_msg_queue_pull(const char **ret)
|
||||
* d) Video driver no longer alive.
|
||||
* e) End of BSV movie and BSV EOF exit is true. (TODO/FIXME - explain better)
|
||||
*/
|
||||
#define time_to_exit(quit_key_pressed) (runloop_shutdown_initiated || quit_key_pressed || !is_alive || bsv_movie_is_end_of_file() || ((runloop_max_frames != 0) && (frame_count >= runloop_max_frames)) || runloop_exec)
|
||||
#define time_to_exit(quit_key_pressed) (rarch_ctl(RARCH_CTL_IS_SHUTDOWN, NULL) || quit_key_pressed || !is_alive || bsv_movie_is_end_of_file() || ((runloop_max_frames != 0) && (frame_count >= runloop_max_frames)) || runloop_exec)
|
||||
|
||||
#define runloop_check_cheevos() (settings->bools.cheevos_enable && cheevos_loaded && (!cheats_are_enabled && !cheats_were_enabled))
|
||||
|
||||
@ -2782,7 +2785,7 @@ static enum runloop_state runloop_check_state(
|
||||
|
||||
/* Loads dummy core instead of exiting RetroArch completely.
|
||||
* Aborts core shutdown if invoked. */
|
||||
runloop_shutdown_initiated = false;
|
||||
rarch_ctl(RARCH_CTL_UNSET_SHUTDOWN, NULL);
|
||||
runloop_core_shutdown_initiated = false;
|
||||
}
|
||||
else
|
||||
|
@ -145,6 +145,7 @@ enum rarch_ctl_state
|
||||
RARCH_CTL_SET_CORE_SHUTDOWN,
|
||||
|
||||
RARCH_CTL_SET_SHUTDOWN,
|
||||
RARCH_CTL_UNSET_SHUTDOWN,
|
||||
RARCH_CTL_IS_SHUTDOWN,
|
||||
|
||||
/* Runloop state */
|
||||
|
Loading…
x
Reference in New Issue
Block a user