cpp/thread/counting semaphore/try acquire for

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

Preconditions
(none)

Return value
if it decremented the internal counter, otherwise

Exceptions
May throw std or a timeout-related exception.