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)
См. также
|
(C11) | блокирует мьютекс до тех пор, пока не заблокирует (функция) |
|
(C11) | блокирует мьютекс до тех пор, пока не заблокирует или не истечёт время ожидания (функция) |
|
(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