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_requested
(
)
和
stop_possible
(
)
可以在同一停止状态的其他
stop_token和stop_source上被并发调用; -
request_stop
(
)
可以在其他
stop_source对象上被并发调用,但只有一个会实际执行停止请求。
然而,请参阅注释部分。
目录 |
参数
(无)
返回值
当
stop_source
对象具有停止状态且本次调用发出了停止请求时返回
true
,否则返回
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
条件变量都将收到通知。
示例
|
本节内容不完整
原因:缺少示例 |