3#include "AudioToolsConfig.h"
5#ifdef USE_STD_CONCURRENCY
20 virtual void lock() {}
21 virtual void unlock() {}
24#if defined(USE_STD_CONCURRENCY)
30 if (!lock_.exchange(
true, std::memory_order_acquire)) {
34 while (lock_.load(std::memory_order_relaxed)) {
46 return !lock_.load(std::memory_order_relaxed) &&
47 !lock_.exchange(
true, std::memory_order_acquire);
50 void unlock() { lock_.store(
false, std::memory_order_release); }
53 volatile std::atomic<bool> lock_ = {0};
63class StdMutex :
public MutexBase {
65 void lock()
override { std_mutex.lock(); }
66 void unlock()
override { std_mutex.unlock(); }