Returns the result of the computation when it
{@linkplain #isDone is done}.
This method differs from {@link #get()} in that abnormal
completion results in {@code RuntimeException} or {@code Error},
not {@code ExecutionException}, and that interrupts of the
calling thread do <em>not</em> cause the method to abruptly
return by throwing {@code InterruptedException}.
Returns the result of the computation when it {@linkplain #isDone is done}. This method differs from {@link #get()} in that abnormal completion results in {@code RuntimeException} or {@code Error}, not {@code ExecutionException}, and that interrupts of the calling thread do <em>not</em> cause the method to abruptly return by throwing {@code InterruptedException}.
@return the computed result