private void scheduleVersionDependentTasksForFutureCompletion(int completeAtVersion) {
        // TODO expose and use monotonic clock instead of system clock
        final long maxDeadlineTimePointMs = timer.getCurrentTimeInMillis() + options.getMaxDeferredTaskVersionWaitTime().toMillis();
        for (RemoteClusterControllerTask task : tasksPendingStateRecompute) {
            context.log(logger, Level.INFO, task + " will be completed at version " + completeAtVersion);
            taskCompletionQueue.add(new VersionDependentTaskCompletion(completeAtVersion, task, maxDeadlineTimePointMs));
        }
        tasksPendingStateRecompute.clear();
    }
Move tasks that are dependent on the most recently generated state being published into
a completion queue with a dependency on the provided version argument. Once that version
has been ACKed by all distributors in the system, those tasks will be marked as completed.
clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java