mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-27 11:01:13 +01:00
Uninstalls LogManager handlers on shutdown
In case something manages to have stayed alive and tried throwing a message, this will no longer crash. Noticed this with the previous commit
This commit is contained in:
1 parent
f83698cb50
commit
aa3b77e4c8
3 files changed
+7
No files matched your search
@@ -7,6 +7,7 @@ namespace LogMan {
|
||||
namespace Throw {
|
||||
std::vector<ThrowHandler> Handlers;
|
||||
void InstallHandler(ThrowHandler Handler) { Handlers.emplace_back(Handler); }
|
||||
void UnInstallHandlers() { Handlers.clear(); }
|
||||
|
||||
[[noreturn]] void M(const char *fmt, va_list args) {
|
||||
size_t MsgSize = 1024;
|
||||
@@ -30,6 +31,7 @@ void InstallHandler(ThrowHandler Handler) { Handlers.emplace_back(Handler); }
|
||||
namespace Msg {
|
||||
std::vector<MsgHandler> Handlers;
|
||||
void InstallHandler(MsgHandler Handler) { Handlers.emplace_back(Handler); }
|
||||
void UnInstallHandlers() { Handlers.clear(); }
|
||||
|
||||
void M(DebugLevels Level, const char *fmt, va_list args) {
|
||||
size_t MsgSize = 1024;
|
||||
|
||||
@@ -19,6 +19,7 @@ constexpr DebugLevels MSG_LEVEL = INFO;
|
||||
namespace Throw {
|
||||
using ThrowHandler = void(*)(char const *Message);
|
||||
void InstallHandler(ThrowHandler Handler);
|
||||
void UnInstallHandlers();
|
||||
|
||||
[[noreturn]] void M(const char *fmt, va_list args);
|
||||
|
||||
@@ -40,6 +41,7 @@ static inline void A(bool, const char*, ...) {}
|
||||
namespace Msg {
|
||||
using MsgHandler = void(*)(DebugLevels Level, char const *Message);
|
||||
void InstallHandler(MsgHandler Handler);
|
||||
void UnInstallHandlers();
|
||||
|
||||
void M(DebugLevels Level, const char *fmt, va_list args);
|
||||
|
||||
|
||||
@@ -283,6 +283,9 @@ int main(int argc, char **argv, char **const envp) {
|
||||
|
||||
FEXCore::Config::Shutdown();
|
||||
|
||||
LogMan::Throw::UnInstallHandlers();
|
||||
LogMan::Msg::UnInstallHandlers();
|
||||
|
||||
if (OutputFD != stderr &&
|
||||
OutputFD != stdout &&
|
||||
OutputFD != nullptr) {
|
||||
|
||||
Reference in new issue
Block a user