std::counting_semaphore<LeastMaxValue>:: try_acquire_until
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Operations | ||||
|
counting_semaphore::try_acquire_until
|
||||
| Constants | ||||
|
template
<
class
Clock,
class
Duration
>
bool try_acquire_until ( const std:: chrono :: time_point < Clock, Duration > & abs_time ) ; |
(C++20 起) | |
尝试在内部计数器大于 1 时原子性地将其递减 1 ;否则会阻塞直到计数器大于 0 且能成功递减内部计数器,或已达到 abs_time 时间点。
如果 std:: chrono :: is_clock_v < Clock > 为 false ,则程序非良构。
目录 |
前置条件
Clock
满足
Clock
要求。
参数
| abs_time | - | 函数必须等待的 最早 时间点,超过该时间点将返回失败 |
返回值
true 表示成功递减内部计数器,否则返回 false 。
异常
可能抛出 std::system_error 或与超时相关的异常。
注释
在实践中,该函数可能需要比 abs_time 更长的时间才会执行失败。
参见
|
递增内部计数器并解除获取者的阻塞
(公开成员函数) |
|
|
递减内部计数器或在可递减前阻塞
(公开成员函数) |
|
|
尝试非阻塞地递减内部计数器
(公开成员函数) |
|
|
尝试递减内部计数器,最多阻塞一段持续时间
(公开成员函数) |