From 7b0099cd763f6c432b3ec2a78a01f0b4d0402a94 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Wed, 9 Sep 2020 18:37:28 +0200 Subject: [PATCH] Fix a threading issue in AppLogController Fixes #392 --- nymea-app/applogcontroller.cpp | 2 ++ nymea-app/applogcontroller.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/nymea-app/applogcontroller.cpp b/nymea-app/applogcontroller.cpp index 0e20f323..9105a243 100644 --- a/nymea-app/applogcontroller.cpp +++ b/nymea-app/applogcontroller.cpp @@ -36,6 +36,7 @@ #include #include #include +#include QtMessageHandler AppLogController::s_oldLogMessageHandler = nullptr; @@ -161,6 +162,7 @@ void AppLogController::logMessageHandler(QtMsgType type, const QMessageLogContex void AppLogController::append(const QString &message, AppLogController::Type type) { + QMutexLocker locker(&m_mutex); QString finalMessage = message + "\n"; m_logFile.write(finalMessage.toUtf8()); m_logFile.flush(); diff --git a/nymea-app/applogcontroller.h b/nymea-app/applogcontroller.h index 3579aa44..971933d7 100644 --- a/nymea-app/applogcontroller.h +++ b/nymea-app/applogcontroller.h @@ -35,6 +35,7 @@ #include #include #include +#include class AppLogController : public QAbstractListModel { @@ -86,6 +87,7 @@ private: QFile m_logFile; QStringList m_buffer; QList m_types; + QMutex m_mutex; }; #endif // APPLOGCONTROLLER_H