Namespaces
Variants

std::counting_semaphore<LeastMaxValue>:: try_acquire_until

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
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 更长的时间才会执行失败。

参见

递增内部计数器并解除获取者的阻塞
(公开成员函数)
递减内部计数器或在可递减前阻塞
(公开成员函数)
尝试非阻塞地递减内部计数器
(公开成员函数)
尝试递减内部计数器,最多阻塞一段持续时间
(公开成员函数)