Sleeping Wombat Common Library  0.50.0
swCommonLibrary
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

void lock ()
 Wejście do sekcji krytycznej.
 
void unlock ()
 Opuszczenie sekcji krytycznej.
 
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.

Member Function Documentation

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.

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