revised signalWaiters implementation to use notifyAll by default