Synchronisation von Threads.
Mehr ...
Mutexes stellen ein Low-Level-Interface für die Synchronisation von Threads dar. Mit ihnen kann verhindert werden, dass mehrere Threads versuchen gleichzeitig auf die gleichen Daten zuzugreifen.
ppl6::CMutex::~CMutex |
( |
| ) |
|
int ppl6::CMutex::Lock |
( |
| ) |
|
Diese Funktion versucht einen Mutex zu sperren. Ist dieser bereits durch einen anderen Thread blockiert, wird gewartet, bis der Mutex wieder frei wird.
- Rückgabe
- Konnte der Mutex erfolgreich gesperrt werden, liefert die Funktion true (1) zurück, im Fehlerfall false (0)
int ppl6::CMutex::Signal |
( |
| ) |
|
Mit dieser Funktion wird dem Mutex ein Signal gegeben. Hat ein Thread sich selbst durch Aufruf der Wait-Funktion (siehe CMutex::Wait) angehalten, wird er nach Aufruf des Signals fortgesetzt.
- Rückgabe
- Bei Erfolg liefert die Funktion true (1) zurück, sonst false (0).
int ppl6::CMutex::TryLock |
( |
| ) |
|
Diese Funktion versucht wie CMutex::Lock einen Mutex zu sperren. Ist dieser allerdings bereits durch einen anderen Thread blockiert, wird nicht gewartet, bis der Mutex wieder frei wird, sondern es wird sofort ein Fehler zurückgeliefert.
- Rückgabe
- Konnte der Mutex erfolgreich gesperrt werden, liefert die Funktion true (1) zurück, im Fehlerfall false (0)
int ppl6::CMutex::Unlock |
( |
| ) |
|
Mit dieser Funktion wird ein zuvor mit CMutex::Lock gesperrter Mutex wieder frei gegeben.
- Rückgabe
- Konnte der Mutex erfolgreich entsperrt werden, liefert die Funktion true (1) zurück, im Fehlerfall false (0)
int ppl6::CMutex::Wait |
( |
int |
milliseconds = 0 | ) |
|
Der aufrufende Thread wird angehalten, bis ein anderer Thread diesem Mutex ein Signal gibt (siehe CMutex::Signal) oder die optional angegebene Zeit abgelaufen ist. Der Mutex selbst wird freigegeben, während der Thread wartet.
- Parameter
-
milliseconds | Optionale Angabe einer Zeit, nach deren Ablauf der Thread automatisch wieder fortgeführt wird. Default = 0 = unendlich. |
- Rückgabe
- Liefert true (1), wenn dem Mutex ein Signal gegeben wurde. Wenn
microseconds
angegeben wurde, liefert die Funktion nach Ablauf des Timeouts 0 zurück, andernfalls wartet die Funktion so lange, bis ein Signal gegeben wurde. Es wird kein Fehlercode gesetzt.
- Zu beachten
- War der Mutex vor Aufruf dieser Funktion bereits gelocked, ist er es nach Ende immer noch.
void* ppl6::CMutex::handle |
|
private |
Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
- /jenkins/jobs/clang_ppl6/workspace/include/ppl6.h
- /jenkins/jobs/clang_ppl6/workspace/src/core/CMutex.cpp