Sleeping Wombat Common Library
0.50.0
swCommonLibrary
|
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 |
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.
|
inline |
Próbuje zająć sekcję krytyczną. Jeżeli jest zajęta, wychodzi natychmiast.