Namespaces
Variants

cnd_timedwait

From cppreference.net
Definiert im Header <threads.h>
int cnd_timedwait ( cnd_t * restrict cond, mtx_t * restrict mutex,
const struct timespec * restrict time_point ) ;
(seit C11)

Entsperrt atomar den Mutex, auf den mutex zeigt, und blockiert auf der Bedingungsvariable, auf die cond zeigt, bis der Thread durch cnd_signal oder cnd_broadcast signalisiert wird, oder bis der TIME_UTC -basierte Zeitpunkt, auf den time_point zeigt, erreicht wurde, oder bis ein spontanes Aufwachen auftritt. Der Mutex wird vor der Rückkehr der Funktion wieder gesperrt.

Das Verhalten ist undefiniert, falls der Mutex nicht bereits vom aufrufenden Thread gesperrt wurde.

Inhaltsverzeichnis

Parameter

cond - Zeiger auf die Bedingungsvariable, auf die gewartet werden soll
mutex - Zeiger auf den Mutex, der für die Dauer der Blockierung entsperrt werden soll
time_point - Zeiger auf ein Objekt, das den Timeout-Zeitpunkt angibt, bis zu dem gewartet werden soll

Rückgabewert

thrd_success bei Erfolg, thrd_timedout wenn die Timeout-Zeit erreicht wurde, bevor der Mutex gesperrt wurde, oder thrd_error falls ein Fehler aufgetreten ist.

Referenzen

  • C17-Standard (ISO/IEC 9899:2018):
  • 7.26.3.5 Die cnd_timedwait-Funktion (S: 276-277)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.26.3.5 Die cnd_timedwait-Funktion (S: 379-380)

Siehe auch

blockiert auf einer Condition Variable
(Funktion)
C++-Dokumentation für condition_variable::wait_until
C++-Dokumentation für condition_variable_any::wait_until