Namespaces
Variants

cnd_timedwait

From cppreference.net
Определено в заголовочном файле <threads.h>
int cnd_timedwait ( cnd_t * restrict cond, mtx_t * restrict mutex,
const struct timespec * restrict time_point ) ;
(начиная с C11)

Атомарно разблокирует мьютекс, на который указывает mutex , и блокируется на переменной условия, на которую указывает cond , до тех пор пока поток не будет разбужен с помощью cnd_signal или cnd_broadcast , или до достижения временной точки на основе TIME_UTC , на которую указывает time_point , или до возникновения ложного пробуждения. Мьютекс снова блокируется перед возвратом из функции.

Поведение не определено, если мьютекс уже не заблокирован вызывающим потоком.

Содержание

Параметры

cond - указатель на переменную условия, на которой следует заблокироваться
mutex - указатель на мьютекс для разблокировки на время блокировки
time_point - указатель на объект, определяющий время ожидания до истечения таймаута

Возвращаемое значение

thrd_success если успешно, thrd_timedout если время ожидания истекло до блокировки мьютекса, или thrd_error если произошла ошибка.

Ссылки

  • Стандарт C17 (ISO/IEC 9899:2018):
  • 7.26.3.5 Функция cnd_timedwait (стр: 276-277)
  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.26.3.5 Функция cnd_timedwait (стр: 379-380)

Смотрите также

блокирует на условной переменной
(функция)
C++ documentation для condition_variable::wait_until
C++ documentation для condition_variable_any::wait_until