<Q, P> DaemonTask<Q, P> spawnChild(Supplier<DaemonResponse<P>> childRunner, String name, long timeout) { DaemonTask child = TaskRepository.submitTask(childRunner, name, timeout); children.add(child); return child; }
public static <C, T> DaemonTask<C, T> submitTask(Supplier<DaemonResponse<T>> taskSupplier, String name, long timeout) { DaemonTask task = getTask(); DaemonTask<C, T> result; if (task != null) { result = task.spawnChild(taskSupplier, name, timeout); log.info(task + " spawned child " + result); } else { result = TaskRepository.submitTask(taskSupplier, name, timeout); } return result; }