diff options
| author | 2022-06-25 19:45:54 +0100 | |
|---|---|---|
| committer | 2022-06-25 21:08:58 +0100 | |
| commit | 2bbd2bc1a25dd3843ba8e75c2e1bcfefa3d445e3 (patch) | |
| tree | e345fc490473a1178c19ce8ace9cbf62707f6157 /src/logging.cpp | |
| parent | Make getEnum use the default instead of throwing. (diff) | |
Prevent writing to loggers whilst deleting a logger.
Diffstat (limited to 'src/logging.cpp')
| -rw-r--r-- | src/logging.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/logging.cpp b/src/logging.cpp index 83d4322e3..85c18fde7 100644 --- a/src/logging.cpp +++ b/src/logging.cpp @@ -164,7 +164,9 @@ Log::Manager::Manager() void Log::Manager::CloseLogs() { + logging = true; // Prevent writing to dying loggers. loggers.erase(std::remove_if(loggers.begin(), loggers.end(), [](const Info& info) { return info.config; }), loggers.end()); + logging = false; } void Log::Manager::EnableDebugMode() @@ -250,8 +252,11 @@ void Log::Manager::RegisterServices() void Log::Manager::UnloadEngine(const Engine* engine) { + logging = true; // Prevent writing to dying loggers. size_t logger_count = loggers.size(); loggers.erase(std::remove_if(loggers.begin(), loggers.end(), [&engine](const Info& info) { return info.engine == engine; }), loggers.end()); + logging = false; + Normal("LOG", "The %s log engine is unloading; removed %zu/%zu loggers.", engine->name.c_str(), logger_count - loggers.size(), logger_count); } |
