code: public static <T> ComposableFuture<T> doubleDispatch(final long duration, final TimeUnit unit,
                                                         final FutureAction<T> action) {
      return EagerComposableFuture.doubleDispatch(action, duration, unit, getScheduler());
    }
docs: creates a future that fires the first future immediately and a second one after a specified time period
  if result hasn't arrived yet.
  should be used with eager futures.
  
  @param duration time to wait until the second future is fired
  @param unit     the duration time unit
  @param action   a provider of eager future
  @param <T>      the type of the future
  @return the composed future