Namensräume
Varianten
Aktionen

mtx_timedlock

Von cppreference.com
< c‎ | thread
Definiert im Header <threads.h>
int mtx_timedlock( mtx_t *restrict mutex,
                   const struct timespec *restrict time_point );
(seit C11)

Blockiert den aktuellen Thread, bis der durch mutex zeigende Mutex gesperrt ist oder bis der absolute Kalenderzeitpunkt basierend auf TIME_UTC, auf den time_point zeigt, erreicht wurde.

Da diese Funktion eine absolute Zeit verwendet, muss der Kalenderzeitpunkt manuell berechnet werden, falls eine Dauer benötigt wird.

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 für denselben Mutex *synchronisieren mit* dieser Operation (wenn diese Operation erfolgreich ist), und alle Sperr-/Entsperroperationen für einen gegebenen Mutex bilden eine einzige totale Reihenfolge (ähnlich der Modifikationsreihenfolge eines Atoms).

Inhalt

[bearbeiten] Parameter

mutex - Zeiger auf die zu sperrende Mutex
time_point - Zeiger auf die absolute Kalenderzeit, bis zu der auf das Timeout gewartet werden soll

[bearbeiten] Rückgabewert

thrd_success bei Erfolg, thrd_timedout, wenn die Timeout-Zeit erreicht wurde, bevor der Mutex gesperrt werden konnte, thrd_error bei einem Fehler.

[bearbeiten] Referenzen

  • C17-Standard (ISO/IEC 9899:2018)
  • 7.26.4.4 Die Funktion mtx_timedlock (S. 278)
  • C11-Standard (ISO/IEC 9899:2011)
  • 7.26.4.4 Die Funktion mtx_timedlock (S. 381-382)

[bearbeiten] Siehe auch

Zeit in Sekunden und Nanosekunden
(Struktur)[bearbeiten]
blockiert, bis ein Mutex gesperrt ist
(Funktion) [bearbeiten]
sperrt einen Mutex oder kehrt zurück, ohne zu blockieren, wenn er bereits gesperrt ist
(Funktion) [bearbeiten]
entsperrt einen Mutex
(Funktion) [bearbeiten]
C++ Dokumentation für timed_mutex::try_lock_until
C++ Dokumentation für recursive_timed_mutex::try_lock_until

[bearbeiten] Externe Links

GNU GCC Libc Manual: ISO-C-Mutexes