Namespaces
Variants

cnd_wait

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

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

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

Содержание

Параметры

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

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

thrd_success если успешно, thrd_error в противном случае.

Ссылки

  • Стандарт C17 (ISO/IEC 9899:2018):
  • 7.26.3.6 Функция cnd_wait (стр: 277)
  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.26.3.6 Функция cnd_wait (стр: 380)

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

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