public T get ( ) throws InterruptedException , ExecutionException { Object r ; return reportGet ( ( r = result ) == null ? waitingGet ( true ) : r ) ; }
Waits if necessary for this future to complete and then returns its result .