Namensräume
Varianten
Aktionen

cnd_timedwait

Von cppreference.com
< c‎ | thread
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 die durch mutex zeigende Mutex und blockiert an der durch cond zeigenden Bedingungsvariable, bis der Thread durch cnd_signal oder cnd_broadcast signalisiert wird, oder bis der durch time_point zeigende, auf TIME_UTC basierende Zeitpunkt erreicht wurde, oder bis ein unerwartetes Aufwachen stattfindet. Die Mutex wird vor der Rückgabe der Funktion wieder gesperrt.

Das Verhalten ist undefiniert, wenn die Mutex nicht bereits durch den aufrufenden Thread gesperrt ist.

Inhalt

[bearbeiten] Parameter

cond - Zeiger auf die Bedingungsvariable, auf der blockiert werden soll
mutex - Zeiger auf die Mutex, die während des Blocks entsperrt werden soll
time_point - Zeiger auf ein Objekt, das den Zeitpunkt für den Timeout angibt

[bearbeiten] Rückgabewert

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

[bearbeiten] Referenzen

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

[bearbeiten] Siehe auch

blockiert auf einer Bedingungsvariable
(Funktion) [bearbeiten]
C++ Dokumentation für condition_variable::wait_until
C++ Dokumentation für condition_variable_any::wait_until