std::counting_semaphore<LeastMaxValue>::try_acquire_for

From cppreference.com
 
 
Concurrency support library
Threads
(C++11)
(C++20)
(C++20)
this_thread namespace
(C++11)
(C++11)
(C++11)
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11)(deprecated in C++20)
(C++11)(deprecated in C++20)
Free functions for atomic operations
Free functions for atomic flags
Memory ordering
Mutual exclusion
(C++11)
Generic lock management
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
Condition variables
(C++11)
Semaphores
Latches and barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
 
 
template< class Rep, class Period >
bool try_acquire_for( const std::chrono::duration<Rep, Period>& rel_time );
(since C++20)

Tries to atomically decrement the internal counter by 1 if it is greater than 0; otherwise blocks until it is greater than 0 and can successfully decrement the internal counter, or the rel_time duration has been exceeded.

Preconditions

(none)

Parameters

rel_time - the minimum duration the function must wait for it to fail

Return value

true if it decremented the internal counter, otherwise false

Exceptions

May throw std::system_error or a timeout-related exception.

Notes

In practice the function may take longer than rel_time to fail.

See also

increments the internal counter and unblocks acquirers
(public member function)
decrements the internal counter or blocks until it can
(public member function)
tries to decrement the internal counter without blocking
(public member function)
tries to decrement the internal counter, blocking until a point in time
(public member function)