Use a broadcast when signalling a condition variable.  The only case where more than one thread can be waiting is when application threads are waiting for the eviction server, and we want all of them to wake up as soon as there are pages in the LRU queue.