code: @Override public boolean block() throws InterruptedException {
      while( !isDone() ) {
        try { get(); }
        catch(ExecutionException eex) { // skip the execution part
          Throwable tex = eex.getCause();
          if( tex instanceof                 Error) throw (                Error)tex;
          if( tex instanceof  DistributedException) throw ( DistributedException)tex;
          if( tex instanceof JobCancelledException) throw (JobCancelledException)tex;
          throw new RuntimeException(tex);
        }
        catch(CancellationException cex) { Log.errRTExcept(cex); }
      }
      return true;
    }
docs: deadlock is otherwise all threads would block on waits.