mtx_timedlock
|
Definiert in Header
<threads.h>
|
||
|
int
mtx_timedlock
(
mtx_t
*
restrict
mutex,
const struct timespec * restrict time_point ) ; |
(seit C11) | |
Blockiert den aktuellen Thread, bis der von
mutex
gezeigte Mutex gesperrt ist oder bis der von
time_point
gezeigte absolute Kalenderzeitpunkt auf Basis von
TIME_UTC
erreicht wurde.
Da diese Funktion eine absolute Zeit verwendet, muss bei Bedarf einer Dauer der Kalenderzeitpunkt manuell berechnet werden.
Das Verhalten ist undefiniert, wenn der aktuelle Thread den Mutex bereits gesperrt hat und der Mutex nicht rekursiv ist.
Das Verhalten ist undefiniert, wenn der Mutex kein Timeout unterstützt.
Vorherige Aufrufe von mtx_unlock auf demselben Mutex synchronisieren mit diesem Vorgang (falls dieser Vorgang erfolgreich ist), und alle Sperr-/Entsperrvorgänge auf einem bestimmten Mutex bilden eine einzige totale Ordnung (ähnlich der Modifikationsreihenfolge eines atomaren Datentyps)
Inhaltsverzeichnis |
Parameter
| mutex | - | Zeiger auf den zu sperrenden Mutex |
| time_point | - | Zeiger auf den absoluten Kalenderzeitpunkt, bis zu dem auf den Timeout gewartet werden soll |
Rückgabewert
thrd_success bei Erfolg, thrd_timedout wenn die Timeout-Zeit erreicht wurde, bevor der Mutex gesperrt wurde, thrd_error falls ein Fehler auftritt.
Referenzen
- C17-Standard (ISO/IEC 9899:2018):
-
- 7.26.4.4 Die mtx_timedlock-Funktion (S: 278)
- C11-Standard (ISO/IEC 9899:2011):
-
- 7.26.4.4 Die mtx_timedlock-Funktion (S: 381-382)
Siehe auch
|
(C11)
|
Zeit in Sekunden und Nanosekunden
(struct) |
|
(C11)
|
blockiert bis ein Mutex gesperrt ist
(function) |
|
(C11)
|
sperrt einen Mutex oder kehrt ohne Blockierung zurück falls bereits gesperrt
(function) |
|
(C11)
|
entsperrt einen Mutex
(function) |
|
C++ documentation
für
timed_mutex::try_lock_until
|
|
|
C++ documentation
für
recursive_timed_mutex::try_lock_until
|
|
Externe Links
| GNU GCC Libc Handbuch: ISO-C-Mutexes |