mirror of
https://github.com/libretro/RetroArch
synced 2025-02-24 00:39:54 +00:00
(Linux) Reimplement fork mode functionality
This commit is contained in:
parent
d9113b8bc4
commit
5f3ae10f20
@ -67,8 +67,7 @@ static uint64_t g_cpuFeatures;
|
||||
static int g_cpuCount;
|
||||
|
||||
#ifndef HAVE_DYNAMIC
|
||||
static bool exit_spawn = false;
|
||||
static bool exitspawn_start_game = false;
|
||||
static enum frontend_fork linux_fork_mode = FRONTEND_FORK_NONE;
|
||||
#endif
|
||||
|
||||
#ifdef __arm__
|
||||
@ -2126,13 +2125,19 @@ static bool frontend_linux_set_fork(enum frontend_fork fork_mode)
|
||||
switch (fork_mode)
|
||||
{
|
||||
case FRONTEND_FORK_CORE:
|
||||
exit_spawn = true;
|
||||
RARCH_LOG("FRONTEND_FORK_CORE\n");
|
||||
linux_fork_mode = fork_mode;
|
||||
break;
|
||||
case FRONTEND_FORK_CORE_WITH_ARGS:
|
||||
exit_spawn = true;
|
||||
exitspawn_start_game = true;
|
||||
RARCH_LOG("FRONTEND_FORK_CORE_WITH_ARGS\n");
|
||||
linux_fork_mode = fork_mode;
|
||||
break;
|
||||
case FRONTEND_FORK_SALAMANDER_RESTART:
|
||||
RARCH_LOG("FRONTEND_FORK_SALAMANDER_RESTART\n");
|
||||
/* NOTE: We don't implement Salamander, so just turn
|
||||
* this into FRONTEND_FORK_CORE. */
|
||||
linux_fork_mode = FRONTEND_FORK_CORE;
|
||||
break;
|
||||
case FRONTEND_FORK_NONE:
|
||||
default:
|
||||
return false;
|
||||
@ -2156,11 +2161,21 @@ static void frontend_linux_exec(const char *path, bool should_load_game)
|
||||
|
||||
static void frontend_linux_exitspawn(char *core_path, size_t core_path_size)
|
||||
{
|
||||
bool should_load_game = exitspawn_start_game;
|
||||
bool should_load_game = false;
|
||||
|
||||
if (!exit_spawn)
|
||||
if (linux_fork_mode == FRONTEND_FORK_NONE)
|
||||
return;
|
||||
|
||||
switch (linux_fork_mode)
|
||||
{
|
||||
case FRONTEND_FORK_CORE_WITH_ARGS:
|
||||
should_load_game = true;
|
||||
break;
|
||||
case FRONTEND_FORK_NONE:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
frontend_linux_exec(core_path, should_load_game);
|
||||
}
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user