std::counting_semaphore<LeastMaxValue>::try_acquire_until
提供: cppreference.com
<tbody>
</tbody>
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 を過ぎるまでブロックします。
事前条件
(なし)
引数
| abs_time | - | 失敗するために少なくとも待たなければならない時間 |
戻り値
内部カウンタをデクリメントした場合は true、そうでなければ false。
例外
std::system_error やタイムアウト関連の例外を投げる可能性があります。
ノート
実際には失敗するまで abs_time より長くかかることがあります。
処理系は 0 より大きかった場合でもカウンタのデクリメントに失敗することが許されています。 すなわち、スプリアスに失敗して false を返すことが許されています。