std::counting_semaphore<LeastMaxValue>::try_acquire_until
提供: cppreference.com
< cpp | thread | counting semaphore
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 を返すことが許されています。