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)
См. также
|
(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