continue;
}
// This variable will hold a dirty cacheable that should be cleaned
// after the try/finally block.
final Cacheable dirty;
e.lock();
try {
if (!isEvictable(e, h, true)) {
continue;
}
// The entry is not in use, and has not been used for at least
// one round on the clock. See if it needs to be cleaned.
Cacheable c = e.getCacheable();
if (!c.isDirty()) {
// Not in use and not dirty. Take over the holder.
h.switchEntry(entry);
cacheManager.evictEntry(c.getIdentity());
return h;
}
// Ask the background cleaner to clean the entry.
BackgroundCleaner cleaner = cacheManager.getBackgroundCleaner();