mtx_trylock
|
Определено в заголовочном файле
<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)
Смотрите также
|
(C11)
|
блокирует до захвата мьютекса
(функция) |
|
(C11)
|
блокирует до захвата мьютекса или истечения времени
(функция) |
|
(C11)
|
освобождает мьютекс
(функция) |
|
C++ documentation
для
mutex::try_lock
|
|
|
C++ documentation
для
timed_mutex::try_lock
|
|
|
C++ documentation
для
recursive_mutex::try_lock
|
|
|
C++ documentation
для
recursive_timed_mutex::try_lock
|
|