A spin mutex class which respects the STL interface for mutexes.
This class allows to acquire spin locks also in combination with templates in the STL such as std::unique_lock or std::condition_variable_any. For example:
~~~ {.cpp} ROOT::TSpinMutex m; std::condition_variable cv; bool ready = false;
void worker_thread() { // Wait until main() sends data std::unique_lock<ROOT::TSpinMutex> lk(m); cv.wait(lk, []{return ready;}); [...] } ~~~ {.cpp}
Definition at line 42 of file TSpinMutex.hxx.
Public Member Functions | |
TSpinMutex ()=default | |
TSpinMutex (const TSpinMutex &)=delete | |
~TSpinMutex ()=default | |
void | lock () |
TSpinMutex & | operator= (const TSpinMutex &)=delete |
bool | try_lock () |
void | unlock () |
Private Attributes | |
std::atomic_flag | fAFlag = ATOMIC_FLAG_INIT |
#include <ROOT/TSpinMutex.hxx>
|
default |
|
delete |
|
default |
|
inline |
Definition at line 53 of file TSpinMutex.hxx.
|
delete |
|
inline |
Definition at line 55 of file TSpinMutex.hxx.
|
inline |
Definition at line 54 of file TSpinMutex.hxx.
|
private |
Definition at line 45 of file TSpinMutex.hxx.