If the eviction server finds no candidates (which can happen after a compact operation clears the queue), make sure application threads see the list as empty, otherwise they can race with the eviction thread by reading the section of the array that is being filled during a walk.