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>
的公开成员函数)
|