std::counting_semaphore<LeastMaxValue>::try_acquire_until
From cppreference.com
< cpp | スレッド | 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の時刻を過ぎるまでブロックします。
std::chrono::is_clock_v<Clock>がfalseの場合、プログラムは不正な形式となります。
目次 |
[編集] 前提条件
ClockはClockの要件を満たしていること。
[編集] パラメータ
| abs_time | - | 関数が失敗するために待機しなければならない*最も早い*時刻 |
[編集] 戻り値
内部カウンタをデクリメントした場合はtrue、そうでなければfalse。
[編集] 例外
std::system_errorまたはタイムアウト関連の例外を送出する可能性があります。
[編集] 注記
実際には、関数が失敗するのにabs_timeよりも時間がかかる場合があります。
[編集] 関連項目
| 内部カウンタをインクリメントし、アクライアをブロック解除する (public メンバ関数) | |
| 内部カウンタをデクリメントするか、デクリメントできるまでブロックする (public メンバ関数) | |
| ブロックせずに内部カウンタをデクリメントしようとする (public メンバ関数) | |
| 内部カウンタをデクリメントしようと試み、duration 時間までブロックする (public メンバ関数) |