code: public static <T> ComposableFuture<T> doubleDispatch(final ComposableFuture<T> future, final long duration,
                                                         final TimeUnit unit) {
      return ((LazyComposableFuture<T>) future).doubleDispatch(getScheduler(), duration, unit);
    }
docs: creates a future that fires the first future immediately (after consumption) and a second one after a specified time period
  if result hasn't arrived yet.
  can only be used with lazy futures.
  
  @param future   the original lazy future
  @param duration time duration before consuming the future the second time
  @param unit     th4e duration time unit.
  @param <T>      the future type
  @return the composed future