Spec-Zone.ru › C

mtx_trylock

Определено в заголовке <threads.h>
int mtx_trylock( mtx_t *mutex );
(с C11)

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

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

Параметры

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

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

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

Отчёты об ошибках

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

DR Применено к Поведение, как опубликовано Правильное поведение
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)

См. также

mtx_lock
(C11)
блокирует мьютекс до тех пор, пока не заблокирует
(функция)
mtx_timedlock
(C11)
блокирует мьютекс до тех пор, пока не заблокирует или не истечёт время ожидания
(функция)
mtx_unlock
(C11)
разблокирует мьютекс
(функция)
Документация C++ для mutex::try_lock
Документация C++ для timed_mutex::try_lock
Документация C++ для recursive_mutex::try_lock
Документация C++ для recursive_timed_mutex::try_lock

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

Spec-Zone.ru

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