code: public final Result get(long timeout, TimeUnit unit) throws InterruptedException,
              ExecutionException, TimeoutException {
          return mFuture.get(timeout, unit);
      }
docs: Waits if necessary for at most the given time for the computation
  to complete, and then retrieves its result.
  
  @param timeout Time to wait before cancelling the operation.
  @param unit The time unit for the timeout.
  
  @return The computed result.
  
  @throws CancellationException If the computation was cancelled.
  @throws ExecutionException If the computation threw an exception.
  @throws InterruptedException If the current thread was interrupted
  while waiting.
  @throws TimeoutException If the wait timed out.