std::counting_semaphore<LeastMaxValue>:: release
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Operations | ||||
|
counting_semaphore::release
|
||||
| Constants | ||||
|
void
release
(
std::
ptrdiff_t
update
=
1
)
;
|
(C++20以降) | |
内部カウンターを update の値だけアトミックにインクリメントします。 0 より大きくなるのを待機しているスレッド(例: acquire でブロックされているスレッド)は、その後ブロック解除されます。
この操作は、その効果の結果を観測する try_acquire の呼び出しに対して強く先行発生します。
事前条件
update
>=
0
と
update
<=
max
(
)
-
counter
の両方が
true
であり、ここで
counter
は内部カウンタの値です。
パラメータ
| update | - | 内部カウンターを増加させる量 |
例外
std::system_error をスローする可能性があります。
関連項目
|
内部カウンタをデクリメントするか、可能になるまでブロックする
(公開メンバ関数) |
|
|
ブロックせずに内部カウンタのデクリメントを試みる
(公開メンバ関数) |
|
|
内部カウンタのデクリメントを試み、最大で指定時間ブロックする
(公開メンバ関数) |
|
|
内部カウンタのデクリメントを試み、指定時点までブロックする
(公開メンバ関数) |