question: public void waiterNotify ( Object notifier ) { synchronized ( notifier ) { notifier . notifyAll ( ) ; } }
target:  Wake up any threads waiting on this notifier.  In general, because there is no wakeup-waiting flag, this method must be called from a thread that holds a lock that conflicts with the lock that the waiter was holding.  If the waiter calls writerWait, then waiterNotify can be called either under a readLock or a writeLock, but if the waiter calls readerWait, then waiterNotify should only be called under a writeLock.