thread-safe logger

Signed-off-by: KosmX <kosmx.mc@gmail.com>
This commit is contained in:
KosmX 2023-02-01 14:59:11 +01:00
parent deed49574a
commit ec5bb944b2
No known key found for this signature in database
GPG Key ID: E49D7729B4AD2A98
2 changed files with 4 additions and 0 deletions

View File

@ -150,6 +150,8 @@ namespace {
/** This is used so that we can output to the log file in addition to the CLI. */ /** This is used so that we can output to the log file in addition to the CLI. */
void appDebugOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg) void appDebugOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{ {
const std::lock_guard<std::mutex> lock(APPLICATION->loggerMutex); // synchronized, QFile logFile is not thread-safe
QString out = qFormatLogMessage(type, context, msg); QString out = qFormatLogMessage(type, context, msg);
out += QChar::LineFeed; out += QChar::LineFeed;

View File

@ -45,6 +45,7 @@
#include <QUrl> #include <QUrl>
#include <BaseInstance.h> #include <BaseInstance.h>
#include <mutex>
#include "minecraft/launch/MinecraftServerTarget.h" #include "minecraft/launch/MinecraftServerTarget.h"
@ -310,4 +311,5 @@ public:
QList<QUrl> m_zipsToImport; QList<QUrl> m_zipsToImport;
QString m_instanceIdToShowWindowOf; QString m_instanceIdToShowWindowOf;
std::unique_ptr<QFile> logFile; std::unique_ptr<QFile> logFile;
std::mutex loggerMutex;
}; };