std::unique_lock<Mutex>:: try_lock_until
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Locking | ||||
|
unique_lock::try_lock_until
|
||||
| Modifiers | ||||
| Observers | ||||
| Non-member functions | ||||
|
template
<
class
Clock,
class
Duration
>
bool try_lock_until ( const std:: chrono :: time_point < Clock, Duration > & timeout_time ) ; |
(начиная с C++11) | |
Пытается заблокировать (т.е. получить владение) связанный мьютекс. Блокируется до достижения указанного timeout_time или получения блокировки, в зависимости от того, что наступит раньше. При успешном получении блокировки возвращает true , в противном случае возвращает false . Может блокироваться дольше, чем timeout_time до момента достижения.
Эффективно вызывает mutex ( ) - > try_lock_until ( timeout_time ) .
std::system_error выбрасывается, если нет ассоциированного мьютекса или если мьютекс уже заблокирован тем же потоком.
Clock
должен удовлетворять требованиям
Clock
.
Программа является некорректной, если
std::
chrono
::
is_clock_v
<
Clock
>
равно
false
.
(начиная с C++20)
Содержание |
Параметры
| timeout_time | - | максимальная точка времени до которой блокировка будет продолжаться |
Возвращаемое значение
true если владение мьютексом было успешно получено, false в противном случае.
Исключения
- Любые исключения, выброшенные mutex ( ) - > try_lock_until ( timeout_time ) .
- Если связанный мьютекс отсутствует, std::system_error с кодом ошибки std::errc::operation_not_permitted .
- Если мьютекс уже заблокирован, std::system_error с кодом ошибки std::errc::resource_deadlock_would_occur .
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
блокирует (т.е. получает владение) связанный мьютекс
(публичная функция-член) |
|
|
пытается заблокировать (т.е. получить владение) связанный мьютекс без блокировки
(публичная функция-член) |
|
|
пытается заблокировать (т.е. получить владение) связанный
TimedLockable
мьютекс, возвращает управление если мьютекс был недоступен в течение указанного времени
(публичная функция-член) |
|
|
разблокирует (т.е. освобождает владение) связанный мьютекс
(публичная функция-член) |