VAE - Virtual Audio Engine 1
Small Data Driven Audio Engine
tklb::SpinLock Class Reference

Spinlock ! probably not thread safe. More...

#include <TSpinLock.hpp>

Collaboration diagram for tklb::SpinLock:

Public Types

using Lock = LockGuard< SpinLock >
 
using TryLock = LockGuardTry< SpinLock >
 

Public Member Functions

 SpinLock (const SpinLock &)=delete
 
 SpinLock (const SpinLock *)=delete
 
 SpinLock (SpinLock &&)=delete
 
SpinLockoperator= (const SpinLock &)=delete
 
SpinLockoperator= (SpinLock &&)=delete
 
 SpinLock ()=default
 
void lock ()
 
void unlock ()
 
bool try_lock ()
 Tries to lock, returns true if lock was aquired. More...
 

Private Attributes

bool mSpinLock = false
 

Detailed Description

Spinlock ! probably not thread safe.

Definition at line 12 of file TSpinLock.hpp.

Member Typedef Documentation

◆ Lock

Definition at line 26 of file TSpinLock.hpp.

◆ TryLock

Definition at line 27 of file TSpinLock.hpp.

Constructor & Destructor Documentation

◆ SpinLock() [1/4]

tklb::SpinLock::SpinLock ( const SpinLock )
delete

◆ SpinLock() [2/4]

tklb::SpinLock::SpinLock ( const SpinLock )
delete

◆ SpinLock() [3/4]

tklb::SpinLock::SpinLock ( SpinLock &&  )
delete

◆ SpinLock() [4/4]

tklb::SpinLock::SpinLock ( )
default

Member Function Documentation

◆ lock()

void tklb::SpinLock::lock ( )
inline

Definition at line 29 of file TSpinLock.hpp.

29 {
30 while (mSpinLock) { };
31 mSpinLock = true;
32 }

◆ operator=() [1/2]

SpinLock & tklb::SpinLock::operator= ( const SpinLock )
delete

◆ operator=() [2/2]

SpinLock & tklb::SpinLock::operator= ( SpinLock &&  )
delete

◆ try_lock()

bool tklb::SpinLock::try_lock ( )
inline

Tries to lock, returns true if lock was aquired.

Definition at line 41 of file TSpinLock.hpp.

41 {
42 if (mSpinLock) {
43 return false;
44 }
45 mSpinLock = true;
46 return true;
47 }

◆ unlock()

void tklb::SpinLock::unlock ( )
inline

Definition at line 34 of file TSpinLock.hpp.

34 {
35 mSpinLock = false;
36 }

Member Data Documentation

◆ mSpinLock

bool tklb::SpinLock::mSpinLock = false
private

Definition at line 14 of file TSpinLock.hpp.


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