未処理の例外が発生するか、task_group_context が明示的にキャンセルされると、グラフの実行はキャンセルされ、グラフとそのノードは不定状態になります。例えば、グラフの明示的なキャンセルのコードサンプルで、入力 2 はバッファーに残されます。しかし、入力がバッファーに残された場合でも、そのノードとエッジが不定状態のままでフローグラフの実行中にほかの最適化を行うことができます。グラフを再実行または再開する場合は、最初にグラフをリセットする必要があります。
try {
g.wait_for_all();
} catch ( int j ) {
cout << "Caught " << j << "\n";
// 問題を解決する
g.reset();
f1.try_put(1);
f1.try_put(2);
g.wait_for_all();
}