From f399e97aa8acdbad29a755a97fd7734886637005 Mon Sep 17 00:00:00 2001 From: Maschell Date: Thu, 6 Oct 2022 18:54:16 +0200 Subject: [PATCH] Use lock_guard and OSMemoryBarrier --- src/BackgroundThread.cpp | 12 ++++-------- src/utils/BackgroundThreadWrapper.cpp | 2 +- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/BackgroundThread.cpp b/src/BackgroundThread.cpp index 33b3d24..42706be 100644 --- a/src/BackgroundThread.cpp +++ b/src/BackgroundThread.cpp @@ -1,34 +1,31 @@ #include "BackgroundThread.hpp" #include "ftp.h" #include "net.h" -#include #include BackgroundThread *BackgroundThread::instance = nullptr; BackgroundThread::BackgroundThread() : BackgroundThreadWrapper(BackgroundThread::getPriority()) { DEBUG_FUNCTION_LINE("Start FTP Server"); - mutex.lock(); + std::lock_guard lock(mutex); this->serverSocket = create_server(PORT); - DCFlushRange(&(this->serverSocket), 4); - mutex.unlock(); + OSMemoryBarrier(); DEBUG_FUNCTION_LINE_VERBOSE("Resume Thread"); CThread::resumeThread(); } BackgroundThread::~BackgroundThread() { DEBUG_FUNCTION_LINE("Shutting down FTP Server"); - mutex.lock(); + std::lock_guard lock(mutex); if (this->serverSocket >= 0) { cleanup_ftp(); network_close(this->serverSocket); this->serverSocket = -1; } - mutex.unlock(); } BOOL BackgroundThread::whileLoop() { - mutex.lock(); + std::lock_guard lock(mutex); if (this->serverSocket >= 0) { network_down = process_ftp_events(this->serverSocket); if (network_down) { @@ -45,7 +42,6 @@ BOOL BackgroundThread::whileLoop() { OSSleepTicks(OSSecondsToTicks(5)); } } - mutex.unlock(); OSSleepTicks(OSMillisecondsToTicks(1)); return true; } diff --git a/src/utils/BackgroundThreadWrapper.cpp b/src/utils/BackgroundThreadWrapper.cpp index e7c2eb1..d20662e 100644 --- a/src/utils/BackgroundThreadWrapper.cpp +++ b/src/utils/BackgroundThreadWrapper.cpp @@ -6,7 +6,7 @@ BackgroundThreadWrapper::BackgroundThreadWrapper(int32_t priority) : CThread(CTh BackgroundThreadWrapper::~BackgroundThreadWrapper() { exitThread = 1; - DCFlushRange((void *) &exitThread, 4); + OSMemoryBarrier(); } void BackgroundThreadWrapper::executeThread() {