std::unique_lock<Mutex>:: try_lock_for
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Locking | ||||
|
unique_lock::try_lock_for
|
||||
| Modifiers | ||||
| Observers | ||||
| Non-member functions | ||||
|
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 .
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
блокирует (т.е. получает владение) связанный мьютекс
(публичная функция-член) |
|
|
пытается заблокировать (т.е. получить владение) связанный мьютекс без блокировки
(публичная функция-член) |
|
|
пытается заблокировать связанный мьютекс в течение указанного времени
(публичная функция-член
std::shared_lock<Mutex>
)
|
|
|
пытается заблокировать (т.е. получить владение) связанный
TimedLockable
мьютекс, возвращает управление если мьютекс недоступен до достижения указанной точки времени
(публичная функция-член) |
|
|
разблокирует (т.е. освобождает владение) связанный мьютекс
(публичная функция-член) |