std::stop_source:: request_stop
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Modifiers | ||||
|
stop_source::request_stop
|
||||
| Observers | ||||
| Non-member functions | ||||
| Helper tags | ||||
|
bool
request_stop
(
)
noexcept
;
|
(C++20以降) | |
stop-sourceオブジェクトがstop-stateを持ち、かつまだstopが要求されていない場合、stop-stateに対してstop要求を発行します。
決定は原子的に行われ、停止が要求された場合、競合状態を回避するために停止状態が原子的に更新されます。具体的には:
-
stop_requested
(
)
および
stop_possible
(
)
は、同一の停止状態を共有する他の
stop_tokenおよびstop_sourceに対して並行して呼び出すことが可能です。 -
request_stop
(
)
は、他の
stop_sourceオブジェクトに対して並行して呼び出すことが可能であり、実際に停止要求を実行するのは一つのオブジェクトのみとなります。
ただし、「注記」セクションを参照してください。
目次 |
パラメータ
(なし)
戻り値
true
stop_source
オブジェクトが停止状態を持ち、この呼び出しが停止要求を行った場合。それ以外の場合は
false
。
事後条件
stop_possible ( ) が false または stop_requested ( ) が true の場合。
注記
request_stop
(
)
が停止要求を発行する場合(つまり
true
を返す場合)、同じ関連付けられた停止状態に対して登録された
stop_callback
はすべて、
request_stop
(
)
が発行されたのと同じスレッド上で同期的に呼び出されます。コールバックの呼び出しが例外によって終了した場合、
std::terminate
が呼び出されます。
stop_source
オブジェクトが停止状態を持つが、停止要求が既に行われている場合、この関数は
false
を返します。ただし、停止要求を(正常に)行ったばかりの別の
stop_source
オブジェクトが、まだ
stop_callback
関数の呼び出しの途中でないという保証はありません。
request_stop
(
)
が停止要求を発行する場合(つまり
true
を返す場合)、その
stop_source
の停止状態に関連付けられた
stop_token
に対して割り込み可能な待機を登録されている、基本型
std::condition_variable_any
のすべての条件変数が通知されます。
例
|
このセクションは不完全です
理由: 例がありません |