src/main/java/com/github/phantomthief/concurrent/MoreFutures.java
@Nonnull
    public static <F extends Future<V>, V> Map<F, V> tryWait(@Nonnull Iterable<F> futures,
            @Nonnull Duration duration) throws TryWaitFutureUncheckedException {
        checkNotNull(futures);
        checkNotNull(duration);
        return tryWait(futures, duration.toNanos(), NANOSECONDS);
    }
@Nonnull
    public static <F extends Future<V>, V> Map<F, V> tryWait(@Nonnull Iterable<F> futures,
            @Nonnull Duration duration) throws TryWaitFutureUncheckedException {
        checkNotNull(futures);
        checkNotNull(duration);
        return tryWait(futures, duration.toNanos(), NANOSECONDS);
    }
@ Nonnull public static < F extends Future < V > , V > Map < F , V > tryWait ( @ Nonnull Iterable < F > futures , @ Nonnull Duration duration ) throws TryWaitFutureUncheckedException { checkNotNull ( futures ) ; checkNotNull ( duration ) ; return tryWait ( futures , duration . toNanos ( ) , NANOSECONDS ) ; }
@see #tryWait(Iterable, long, TimeUnit)

@throws TryWaitFutureUncheckedException if not all calls are successful.
@see #tryWait ( Iterable long TimeUnit )