std::shared_lock<Mutex>:: try_lock_until
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Shared locking | ||||
|
shared_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++14) | |
Пытается заблокировать связанный мьютекс в режиме разделения. Блокируется до достижения указанного timeout_time или получения блокировки, в зависимости от того, что наступит раньше. При успешном получении блокировки возвращает true , в противном случае возвращает false . Может блокироваться дольше, чем до достижения timeout_time .
Эффективно вызывает mutex ( ) - > try_lock_shared_until ( timeout_time ) .
std::system_error выбрасывается, если нет связанного мьютекса или если мьютекс уже заблокирован.
Clock
должен соответствовать требованиям
Clock
. Поведение не определено, если
Mutex
не соответствует требованиям
SharedTimedLockable
.
Программа является некорректной, если
std::
chrono
::
is_clock_v
<
Clock
>
равно
false
.
(начиная с C++20)
Содержание |
Параметры
| timeout_time | - | максимальная точка времени до которой блокировка будет продолжаться |
Возвращаемое значение
true если владение мьютексом было успешно получено, false в противном случае.
Исключения
- Любые исключения, выброшенные mutex ( ) - > try_lock_shared_for ( timeout_time ) .
- Если связанный мьютекс отсутствует, std::system_error с кодом ошибки std::errc::operation_not_permitted .
- Если мьютекс уже заблокирован, std::system_error с кодом ошибки std::errc::resource_deadlock_would_occur .
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
блокирует связанный мьютекс
(публичная функция-член) |
|
|
пытается заблокировать связанный мьютекс
(публичная функция-член) |
|
|
пытается заблокировать связанный мьютекс на указанную продолжительность
(публичная функция-член) |
|
|
разблокирует связанный мьютекс
(публичная функция-член) |
|
|
пытается заблокировать (т.е. завладеть) связанный
TimedLockable
мьютекс, возвращает управление, если мьютекс был недоступен до достижения указанной точки времени
(публичная функция-член
std::unique_lock<Mutex>
)
|