未処理の例外が発生するか、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(); }