@ Override public void await ( ) throws InterruptedException { queueLock . lock ( ) ; try { while ( test ( ) ) { condition . await ( ) ; } } finally { queueLock . unlock ( ) ; } }
wake if signal is called or wait indefinitely