From fa139ecf5c5f37b7c2bc6c546bcb349bbf4e2e58 Mon Sep 17 00:00:00 2001 From: PJB3005 Date: Thu, 12 Mar 2026 11:10:21 +0100 Subject: [PATCH] Implement JASCriticalSection with a regular mutex --- .../include/JSystem/JAudio2/JASCriticalSection.h | 6 ++++++ src/dusk/audio/JASCriticalSection.cpp | 13 +++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 src/dusk/audio/JASCriticalSection.cpp diff --git a/libs/JSystem/include/JSystem/JAudio2/JASCriticalSection.h b/libs/JSystem/include/JSystem/JAudio2/JASCriticalSection.h index 53faae80fe..ed4cb023ed 100644 --- a/libs/JSystem/include/JSystem/JAudio2/JASCriticalSection.h +++ b/libs/JSystem/include/JSystem/JAudio2/JASCriticalSection.h @@ -8,12 +8,18 @@ * */ class JASCriticalSection { +public: +#if TARGET_PC + JASCriticalSection(); + ~JASCriticalSection(); +#else public: JASCriticalSection() { mInterruptState = OSDisableInterrupts(); }; ~JASCriticalSection() { OSRestoreInterrupts(mInterruptState); }; private: u32 mInterruptState; +#endif }; #endif /* JASCRITICALSECTION_H */ diff --git a/src/dusk/audio/JASCriticalSection.cpp b/src/dusk/audio/JASCriticalSection.cpp new file mode 100644 index 0000000000..9b315b9d0b --- /dev/null +++ b/src/dusk/audio/JASCriticalSection.cpp @@ -0,0 +1,13 @@ +#include "JSystem/JAudio2/JASCriticalSection.h" + +#include + +static std::recursive_mutex gAudioThreadMutex; + +JASCriticalSection::JASCriticalSection() { + gAudioThreadMutex.lock(); +} + +JASCriticalSection::~JASCriticalSection() { + gAudioThreadMutex.unlock(); +}