Sleeping Wombat GUI  0.100
swGUI
Public Member Functions | Private Attributes | List of all members
SpinLock Class Reference

Klasa służąca jako mutex z aktywnym oczekiwaniem. More...

#include <SpinLock.h>

Public Member Functions

 SpinLock ()
 
 ~SpinLock ()=default
 
void lock ()
 Wejście do sekcji krytycznej. More...
 
void unlock ()
 Opuszczenie sekcji krytycznej. More...
 
bool try_lock ()
 Próbuje zająć sekcję krytyczną. Jeżeli jest zajęta, wychodzi natychmiast. More...
 

Private Attributes

volatile int32 m_locked
 

Detailed Description

Klasa służąca jako mutex z aktywnym oczekiwaniem.

Klasa SpinLock używa aktywnego oczekiwania w celu uniknięcia konieczności odwoływania się do systemu operacyjnego, gdy wejście do sekcji krytycznej nie jest możliwe. Implementacją opiera się o instrukcję TSL.

Możliwe jest używanie klasy we współpracy z mechanizmami takimi jak std::lock_guard.

Ze względu na to, że Visual Studio nie potrafi kompilować asemblera pod architekturę ARM, na razie klasa nadaje się do użytku jedynie pod procesorami x86.

Constructor & Destructor Documentation

SpinLock::SpinLock ( )
inline
SpinLock::~SpinLock ( )
default

Member Function Documentation

void SpinLock::lock ( )
inline

Wejście do sekcji krytycznej.

bool SpinLock::try_lock ( )
inline

Próbuje zająć sekcję krytyczną. Jeżeli jest zajęta, wychodzi natychmiast.

Returns
Zwraca true, jeżeli udało się wejść do sekcji krytycznej.
void SpinLock::unlock ( )
inline

Opuszczenie sekcji krytycznej.

Member Data Documentation

volatile int32 SpinLock::m_locked
private

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