public void await() throws InterruptedException {
  awaitSemaphore.acquire();
  awaitSemaphore.release();
}

public void await ( ) throws InterruptedException { awaitSemaphore . acquire ( ) ; awaitSemaphore . release ( ) ; }
waits until the count gets reduced to zero , and then all threads waiting will get to run .
