16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-22 19:49:19 +02:00

Fix logging crash on exit

This commit is contained in:
2025-04-17 14:35:02 +02:00
parent 173df2ca54
commit f464d16f42
3 changed files with 8 additions and 2 deletions

View File

@@ -142,6 +142,7 @@ struct global_settings {
bool NvRenderer{ false }; bool NvRenderer{ false };
bool BasicRenderer{ false }; bool BasicRenderer{ false };
bool RenderShadows{ true }; bool RenderShadows{ true };
bool applicationQuitOrder{false};
int RenderCabShadowsRange{ 0 }; int RenderCabShadowsRange{ 0 };
struct shadowtune_t { struct shadowtune_t {
unsigned int map_size{ 2048 }; unsigned int map_size{ 2048 };

View File

@@ -78,6 +78,8 @@ void LogService()
{ {
while (true) while (true)
{ {
if (InfoStack.empty() && ErrorStack.empty() && Global.applicationQuitOrder)
break;
// loop for logging // loop for logging
// write logs and log.txt // write logs and log.txt

View File

@@ -224,6 +224,8 @@ void eu07_application::DiscordRPCService()
// run loop // run loop
while (!glfwWindowShouldClose(m_windows.front()) && !m_modestack.empty()) while (!glfwWindowShouldClose(m_windows.front()) && !m_modestack.empty())
{ {
if (Global.applicationQuitOrder)
break;
// Discord RPC updater // Discord RPC updater
if (simulation::is_ready) if (simulation::is_ready)
{ {
@@ -532,8 +534,9 @@ eu07_application::run() {
std::this_thread::sleep_for( Global.minframetime - frametime ); std::this_thread::sleep_for( Global.minframetime - frametime );
} }
} }
Global.threads["LogService"].~thread(); // kill log service Global.applicationQuitOrder = true;
Global.threads["DiscordRPC"].~thread(); // kill DiscordRPC service Global.threads["LogService"].join(); // kill log service
Global.threads["DiscordRPC"].join(); // kill DiscordRPC service
return 0; return 0;
} }