フローグラフの基本: グラフ・オブジェクト#
概念的にフローグラフは、ノードとエッジの集合です。各ノードは 1 つのグラフに属し、エッジは同じグラフのノード間でのみ作成されます。フローグラフのインターフェイスでは、グラフ・オブジェクトはノードとエッジのこの集合を表し、完了するまでグラフに関連するすべてのタスクを待機したり、グラフの全ノードの状態をリセットしたり、グラフのすべてのノードの実行をキャンセルするなど、グラフ全体の操作を呼び出すのに使用されます。
以下のコードはグラフ・オブジェクトを作成し、グラフによって生成されたすべてのタスクが完了するまで待機します。この例は、ノードやエッジのない単純なグラフであり、タスクは生成されないため、 wait_for_all の呼び出しはすぐに戻ります。
graph g;
g.wait_for_all();グラフ・オブジェクトは、それに関連付けられたノードを所有しません。グラフ・オブジェクトの有効期間が、グラフに追加されたすべてのノードとグラフに関連付けられたすべてのアクティビティーの有効期間よりも長いことを確認する必要があります。
ヒント
すべてのアクティビティーが完了していることを確認するため、グラフ・オブジェクトを破棄する前に wait_for_all を呼び出します。
スマートポインターを使用する場合でも、ノードとグラフの破棄の順序に注意し、グラフより先にノードが削除されないように注意してください。