Use _Exit instead of exit under Linux

The best ExitProcess alternative for Linux is _Exit since it doesn't
call exit handlers.

This fixes also #178 since, with exit, it aborts due to some std::threads
not correctly joined.
This commit is contained in:
Timothy Redaelli 2022-09-07 19:39:06 +02:00
parent b752d2eddd
commit 96d98fd3ab
3 changed files with 4 additions and 2 deletions

View file

@ -26,7 +26,7 @@ void handler_SIGINT(int sig)
* by any mean ends up with a SIGABRT from the standard library destroying * by any mean ends up with a SIGABRT from the standard library destroying
* threads. * threads.
*/ */
exit(0); _Exit(0);
} }
void ExceptionHandler_init() void ExceptionHandler_init()

View file

@ -142,7 +142,7 @@ int CemuApp::OnExit()
#if BOOST_OS_WINDOWS #if BOOST_OS_WINDOWS
ExitProcess(0); ExitProcess(0);
#else #else
exit(0); _Exit(0);
#endif #endif
} }

View file

@ -47,6 +47,8 @@
#if BOOST_OS_WINDOWS #if BOOST_OS_WINDOWS
#define exit(__c) ExitProcess(__c) #define exit(__c) ExitProcess(__c)
#else
#define exit(__c) _Exit(__c)
#endif #endif
#if BOOST_OS_LINUX || BOOST_OS_MACOS #if BOOST_OS_LINUX || BOOST_OS_MACOS