Spec-Zone.ru › C++

std::unique_lock<Mutex>::try_lock_for

template< class Rep, class Period >
bool try_lock_for( const std::chrono::duration<Rep, Period>& timeout_duration );
(с C++11)

Пытается заблокировать (т.е., получить владение) связанный мьютекс. Блокируется до тех пор, пока не истечёт заданное timeout_duration, или мьютекс не будет захвачен, в зависимости от того, что наступит раньше. При успешном получении блокировки возвращает true, в противном случае возвращает false. Эффективно вызывает mutex()->try_lock_for(timeout_duration).

Эта функция может блокироваться дольше, чем timeout_duration, из-за задержек планирования или конкуренции за ресурсы.

Исключение std::system_error выбрасывается, если нет связанного мьютекса или мьютекс уже заблокирован этим std::unique_lock.

Параметры

timeout_duration - максимальное время блокировки

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

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

Исключения

  • Любые исключения, выброшенные mutex()->try_lock_for(timeout_duration).
  • Если нет связанного мьютекса, std::system_error с кодом ошибки std::errc::operation_not_permitted.
  • Если мьютекс уже заблокирован, std::system_error с кодом ошибки std::errc::resource_deadlock_would_occur.

Пример

См. также

lock
блокирует (т.е., получает владение) связанный мьютекс
(публичный член-функция)
try_lock
пытается заблокировать (т.е., получить владение) связанный мьютекс без блокировки
(публичный член-функция)
try_lock_for
пытается заблокировать связанный мьютекс на заданный срок
(публичный член-функция std::shared_lock<Mutex>)
try_lock_until
пытается заблокировать (т.е., получить владение) связанный TimedLockable мьютекс, возвращает, если мьютекс был недоступен до достижения заданного момента
(публичный член-функция)
unlock
разблокирует (т.е., освобождает владение) связанный мьютекс
(публичный член-функция)

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

Spec-Zone.ru

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