nl:: Weave:: System:: Mutex
#include <src/system/SystemMutex.h>
This class represents a simple mutual exclusion lock used on platforms with preemptively scheduled multi-threaded programming environments, for example, POSIX threads and FreeRTOS.
Podsumowanie
Blokada nie jest rekurencyjna i nie można jej używać w kontekście przerw w działaniu sprzętu. Konstruktor i destruktor są zdefiniowane jako funkcje o wartości null, co ułatwia korzystanie z obiektów o czasie przechowywania (static
) i niezainicjowanej pamięci. Do zainicjowania użyj metody Init
. Operatory kopiowania/przenoszenia nie są dostępne.
Konstruktory i niszczyciele |
|
---|---|
Mutex(void)
|
|
~Mutex(void)
|
Funkcje publiczne |
|
---|---|
Lock(void)
|
void
Uzyskaj wzajemną blokadę wykluczania i w razie potrzeby zablokuj bieżący wątek na stałe.
|
Unlock(void)
|
void
Odblokuj wzajemną blokadę wykluczania (w niektórych systemach może to być zablokowane, dopóki algorytm szeregowania nie zakończy działania).
|
Publiczne funkcje statyczne |
|
---|---|
Init(Mutex & aMutex)
|
Error
|
Funkcje publiczne
Zablokuj
void Lock( void )
Uzyskaj wzajemną blokadę wykluczania i w razie potrzeby zablokuj bieżący wątek na stałe.
Wyciszenie
Mutex( void )
Odblokuj
void Unlock( void )
Odblokuj wzajemną blokadę wykluczania (w niektórych systemach może to być zablokowane, dopóki algorytm szeregowania nie zakończy działania).