std::execution::ensure_started
From cppreference.com
| ヘッダ <execution> で定義 |
||
| execution::sender auto ensure_started( execution::sender auto sender ); |
(C++26以降) | |
[編集] パラメータ
| sender | - | stoppedチャネルがerrにマッピングされる入力sender |
[編集] 戻り値
指定されたsenderが完了し、指定されたsenderと同等の値を送信するときに完了するsenderを返します。
[編集] 注
ensure_startedが返されたら、指定されたsenderが接続され、結果の操作状態に対してstartが呼び出されたことがわかります。言い換えれば、指定されたsenderによって記述された作業は、適切な実行リソースに実行のためにサブミットされています。
- 返されたsenderがexecution::connect()が呼び出される前に破棄された場合、またはexecution::connect()が呼び出されたが返された操作状態がexecution::start()が呼び出される前に破棄された場合、即時起動された操作に停止要求が送信され、操作はデタッチされ、バックグラウンドで完了まで実行されます。
- その場合、操作の結果は、最終的に完了したときに破棄されます。
- 操作がデタッチするケース(例: そのリソースへのstd::shared_ptrを保持することによって)で、アプリケーションがリソースを生存させておく必要があることに注意してください。