From 83d0639230689a64d285735fe86cd6c9c85de838 Mon Sep 17 00:00:00 2001 From: Povilas Kanapickas Date: Sat, 17 Aug 2019 16:40:24 +0300 Subject: [PATCH] Use std::mutex instead of ArchMutex in IpcLogOutputter --- src/lib/ipc/IpcLogOutputter.cpp | 14 +++++--------- src/lib/ipc/IpcLogOutputter.h | 5 +++-- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/lib/ipc/IpcLogOutputter.cpp b/src/lib/ipc/IpcLogOutputter.cpp index 984793e4..b62c76a0 100644 --- a/src/lib/ipc/IpcLogOutputter.cpp +++ b/src/lib/ipc/IpcLogOutputter.cpp @@ -39,7 +39,6 @@ enum EIpcLogOutputter { IpcLogOutputter::IpcLogOutputter(IpcServer& ipcServer, EIpcClientType clientType, bool useThread) : m_ipcServer(ipcServer), - m_bufferMutex(ARCH->newMutex()), m_sending(false), m_bufferThread(nullptr), m_running(false), @@ -52,8 +51,7 @@ IpcLogOutputter::IpcLogOutputter(IpcServer& ipcServer, EIpcClientType clientType m_bufferRateTimeLimit(kBufferRateTimeLimit), m_bufferWriteCount(0), m_bufferRateStart(ARCH->time()), - m_clientType(clientType), - m_runningMutex(ARCH->newMutex()) + m_clientType(clientType) { if (useThread) { m_bufferThread = new Thread(new TMethodJob( @@ -65,8 +63,6 @@ IpcLogOutputter::~IpcLogOutputter() { close(); - ARCH->closeMutex(m_bufferMutex); - if (m_bufferThread != nullptr) { m_bufferThread->cancel(); m_bufferThread->wait(); @@ -86,7 +82,7 @@ void IpcLogOutputter::close() { if (m_bufferThread != nullptr) { - ArchMutexLock lock(m_runningMutex); + std::lock_guard lock(m_runningMutex); m_running = false; notifyBuffer(); m_bufferThread->wait(5); @@ -116,7 +112,7 @@ IpcLogOutputter::write(ELevel, const char* text) void IpcLogOutputter::appendBuffer(const String& text) { - ArchMutexLock lock(m_bufferMutex); + std::lock_guard lock(m_bufferMutex); double elapsed = ARCH->time() - m_bufferRateStart; if (elapsed < m_bufferRateTimeLimit) { @@ -143,7 +139,7 @@ IpcLogOutputter::appendBuffer(const String& text) bool IpcLogOutputter::isRunning() { - ArchMutexLock lock(m_runningMutex); + std::lock_guard lock(m_runningMutex); return m_running; } @@ -180,7 +176,7 @@ IpcLogOutputter::notifyBuffer() String IpcLogOutputter::getChunk(size_t count) { - ArchMutexLock lock(m_bufferMutex); + std::lock_guard lock(m_bufferMutex); if (m_buffer.size() < count) { count = m_buffer.size(); diff --git a/src/lib/ipc/IpcLogOutputter.h b/src/lib/ipc/IpcLogOutputter.h index 461f022d..2f1b98c6 100644 --- a/src/lib/ipc/IpcLogOutputter.h +++ b/src/lib/ipc/IpcLogOutputter.h @@ -24,6 +24,7 @@ #include "ipc/Ipc.h" #include +#include class IpcServer; class Event; @@ -100,7 +101,7 @@ private: IpcServer& m_ipcServer; Buffer m_buffer; - ArchMutex m_bufferMutex; + std::mutex m_bufferMutex; bool m_sending; Thread* m_bufferThread; bool m_running; @@ -115,5 +116,5 @@ private: UInt16 m_bufferWriteCount; double m_bufferRateStart; EIpcClientType m_clientType; - ArchMutex m_runningMutex; + std::mutex m_runningMutex; };