Spec-Zone.ru › C++

std::recursive_timed_mutex::try_lock

bool try_lock() noexcept;
(с C++11)

Попытка заблокировать мьютекс. Возвращает значение немедленно. При успешной блокировке возвращает true, в противном случае — false.

Эта функция может ошибочно возвращать false даже если мьютекс в данный момент не заблокирован ни одной другой нитью.

Поток может многократно вызывать try_lock для рекурсивного мьютекса. Успешные вызовы try_lock увеличивают счётчик владения: мьютекс будет разблокирован только после того, как поток выполнит соответствующее количество вызовов unlock.

Максимальное количество уровней владения не определено. Вызов try_lock вернёт false в случае превышения этого числа.

Предыдущая операция unlock() с тем же мьютексом синхронизируется (как определено в std::memory_order) с этой операцией, если она возвращает true. Обратите внимание, что предыдущий lock() не синхронизируется с этой операцией, если она возвращает false.

Параметры

(нет)

Значение возврата

true если блокировка была успешно получена, в противном случае false.

Исключения

Не выбрасывает никаких исключений.

Пример

См. также

lock
блокирует мьютекс, блокируется, если мьютекс недоступен
(публичный член-функция)
try_lock_for
пытается заблокировать мьютекс, возвращается, если мьютекс был
недоступен в течение указанного временного интервала
(публичный член-функция)
try_lock_until
пытается заблокировать мьютекс, возвращается, если мьютекс был
недоступен до тех пор, пока не будет достигнута указанная точка времени
(публичный член-функция)
unlock
разблокирует мьютекс
(публичный член-функция)
Документация C для mtx_trylock

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

Spec-Zone.ru

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