Namespaces
Variants

mtx_timedlock

From cppreference.net
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

Zeit in Sekunden und Nanosekunden
(struct)
blockiert bis ein Mutex gesperrt ist
(function)
sperrt einen Mutex oder kehrt ohne Blockierung zurück falls bereits gesperrt
(function)
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