public void await() throws InterruptedException {
  lock.lock();
  try {
    while (!isDone) {
      done.await();
    }
  }
  finally {
    isDone=false;
    lock.unlock();
  }
}

public void await ( ) throws InterruptedException { lock . lock ( ) ; try { while ( ! isDone ) { done . await ( ) ; } } finally { isDone = false ; lock . unlock ( ) ; } }
this is the inner implementation for supporting the blockingexecutor . await ( ) .
