static int expirationQueueSize(Cache<?, ?> cache) { return Math.max(accessQueueSize(cache), writeQueueSize(cache)); }
static int writeQueueSize(Cache<?, ?> cache) { LocalCache<?, ?> cchm = toLocalCache(cache); int size = 0; for (Segment<?, ?> segment : cchm.segments) { size += writeQueueSize(segment); } return size; }
static void expireEntries(LocalCache<?, ?> cchm, long expiringTime, FakeTicker ticker) { for (Segment<?, ?> segment : cchm.segments) { drainRecencyQueue(segment); } ticker.advance(2 * expiringTime, TimeUnit.MILLISECONDS); long now = ticker.read(); for (Segment<?, ?> segment : cchm.segments) { expireEntries(segment, now); assertEquals("Expiration queue must be empty by now", 0, writeQueueSize(segment)); assertEquals("Expiration queue must be empty by now", 0, accessQueueSize(segment)); assertEquals("Segments must be empty by now", 0, segmentSize(segment)); } cchm.processPendingNotifications(); }
static int writeQueueSize(Cache<?, ?> cache) { LocalCache<?, ?> cchm = toLocalCache(cache); int size = 0; for (Segment<?, ?> segment : cchm.segments) { size += writeQueueSize(segment); } return size; }
static int expirationQueueSize(Cache<?, ?> cache) { return Math.max(accessQueueSize(cache), writeQueueSize(cache)); }
static void expireEntries( LocalCache<?, ?> cchm, long expiringTime, FakeTicker ticker) { for (Segment<?, ?> segment : cchm.segments) { drainRecencyQueue(segment); } ticker.advance(2 * expiringTime, TimeUnit.MILLISECONDS); long now = ticker.read(); for (Segment<?, ?> segment : cchm.segments) { expireEntries(segment, now); assertEquals("Expiration queue must be empty by now", 0, writeQueueSize(segment)); assertEquals("Expiration queue must be empty by now", 0, accessQueueSize(segment)); assertEquals("Segments must be empty by now", 0, segmentSize(segment)); } cchm.processPendingNotifications(); }