Github user GJL commented on a diff in the pull request: https://github.com/apache/flink/pull/5087#discussion_r155207330 --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/executiongraph/ExecutionGraph.java --- @@ -965,11 +965,20 @@ public void cancel() { // we build a future that is complete once all vertices have reached a terminal state final ConjunctFuture<Void> allTerminal = FutureUtils.waitForAll(futures); - allTerminal.thenAccept( - (Void value) -> { - // cancellations may currently be overridden by failures which trigger - // restarts, so we need to pass a proper restart global version here - allVerticesInTerminalState(globalVersionForRestart); + allTerminal.whenCompleteAsync( --- End diff -- Does it have to run asynchronously? If yes, does it make sense to specify a thread pool? Now it can run on `ForkJoinPool.commonPool()`.
---