Spec-Zone.ru › C

cnd_timedwait

Определено в заголовке <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)

См. также

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/thread/cnd_timedwait

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API