WE Core
Loading...
Searching...
No Matches
WECore::AudioSpinMutex Class Reference

#include <AudioSpinMutex.h>

Public Member Functions

 AudioSpinMutex ()=default
 
 ~AudioSpinMutex ()=default
 
void lock ()
 
bool tryLock ()
 
void unlock ()
 

Private Attributes

std::atomic_flag flag = ATOMIC_FLAG_INIT
 

Detailed Description

Provides mutex that the audio thread can try-lock in a realtime safe way.

Based on the implementation described here: https://timur.audio/using-locks-in-real-time-audio-processing-safely

Definition at line 46 of file AudioSpinMutex.h.

Constructor & Destructor Documentation

◆ AudioSpinMutex()

WECore::AudioSpinMutex::AudioSpinMutex ( )
default

◆ ~AudioSpinMutex()

WECore::AudioSpinMutex::~AudioSpinMutex ( )
default

Member Function Documentation

◆ lock()

void WECore::AudioSpinMutex::lock ( )
inline

Call from the non-realtime thread.

Will block until the mutex is locked.

Definition at line 56 of file AudioSpinMutex.h.

References tryLock().

Referenced by WECore::AudioSpinLock::AudioSpinLock().

◆ tryLock()

bool WECore::AudioSpinMutex::tryLock ( )
inline

Returns true if the lock was successful.

Is safe to call from the audio thread.

Definition at line 102 of file AudioSpinMutex.h.

References flag.

Referenced by WECore::AudioSpinTryLock::AudioSpinTryLock(), and lock().

◆ unlock()

void WECore::AudioSpinMutex::unlock ( )
inline

Call to unlock the mutex.

Definition at line 109 of file AudioSpinMutex.h.

References flag.

Referenced by WECore::AudioSpinLockBase::unlock(), and WECore::AudioSpinLockBase::~AudioSpinLockBase().

Member Data Documentation

◆ flag

std::atomic_flag WECore::AudioSpinMutex::flag = ATOMIC_FLAG_INIT
private

Definition at line 114 of file AudioSpinMutex.h.

Referenced by tryLock(), and unlock().


The documentation for this class was generated from the following file: