@Override
    public CompletableFuture<?> suspend() {
        return FutureUtils.combineAll(
                currentExecutions.values().stream()
                        .map(Execution::suspend)
                        .collect(Collectors.toList()));
    }
@Test
    void testSuspend() throws Exception {
        final SpeculativeExecutionVertex ev = createSpeculativeExecutionVertex();
        final Execution e1 = ev.getCurrentExecutionAttempt();
        final Execution e2 = ev.createNewSpeculativeExecution(System.currentTimeMillis());

        ev.suspend();
        assertThat(e1.getState()).isSameAs(ExecutionState.CANCELED);
        assertThat(e2.getState()).isSameAs(ExecutionState.CANCELED);
    }