Namespaces
Variants

mtx_trylock

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

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

Предыдущие вызовы mtx_unlock на том же мьютексе синхронизируются-с этой операцией (если данная операция завершается успешно), и все операции lock/unlock на любом заданном мьютексе образуют единый полный порядок (аналогично порядку модификации атомарной переменной)

Содержание

Параметры

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

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

thrd_success при успешном выполнении, thrd_busy если мьютекс уже заблокирован или из-за ложной ошибки при захвате доступного мьютекса, thrd_error при возникновении ошибки.

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены задним числом к ранее опубликованным стандартам C.

DR Applied to Behavior as published Correct behavior
DR 470 C11 mtx_trylock не допускал ложных сбоев разрешено

Ссылки

  • Стандарт C17 (ISO/IEC 9899:2018):
  • 7.26.4.5 Функция mtx_trylock (стр: 278-279)
  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.26.4.5 Функция mtx_trylock (стр: 382)

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

блокирует до захвата мьютекса
(функция)
блокирует до захвата мьютекса или истечения времени
(функция)
освобождает мьютекс
(функция)
C++ documentation для mutex::try_lock
C++ documentation для timed_mutex::try_lock
C++ documentation для recursive_mutex::try_lock
C++ documentation для recursive_timed_mutex::try_lock