std::counting_semaphore<LeastMaxValue>::try_acquire_until
|
|
成员函数 | ||||
操作 | ||||
counting_semaphore::try_acquire_until
|
||||
常量 | ||||
template<class
Clock, class
Duration>
bool try_acquire_until( const std::chrono::time_point<Clock, Duration>& abs_time ); |
(C++20 起) | |
若内部计数器大于 0 则尝试原子地将它减少
1 ;否则阻塞直至它大于
0
且能成功地减少内部计数器,或已经经过 abs_time
时间点。
若 std::chrono::is_clock_v<Clock> 为 false 则程序为非良构。
前条件
Clock
符合时钟 (Clock)
要求。
参数
abs_time | - | 函数必须为失败等待到的最早时间点 |
返回值
若减少内部计数器则为 true ,否则为 false 。
异常
可能抛出 std::system_error 或与到达时间相关的异常。
注解
实践中函数可能需要经过长于 abs_time
的时间才失败。
允许实现未能减少计数器,即使它大于 0 ——即允许它们虚假地失败并返回 false 。