Home | History | Annotate | Download | only in cache

Lines Matching full:segment

28 import com.google.common.cache.LocalCache.Segment;
99 * Forces the segment containing the given {@code key} to expand (see
100 * {@link Segment#expand()}.
105 Segment<K, V> segment = map.segmentFor(hash);
106 segment.expand();
132 for (Segment segment : map.segments) {
133 drainRecencyQueue(segment);
138 static void drainRecencyQueue(Segment<?, ?> segment) {
139 segment.lock();
141 segment.cleanUp();
143 segment.unlock();
154 for (LocalCache.Segment segment : cchm.segments) {
155 drainReferenceQueue(segment);
159 static void drainReferenceQueue(LocalCache.Segment<?, ?> segment) {
160 segment.lock();
162 segment.drainReferenceQueues();
164 segment.unlock();
171 for (Segment<?, ?> segment : map.segments) {
172 totalSize += segment.maxSegmentWeight;
179 * segment's count matches its #elements (after cleanup), each segment is unlocked, each entry
190 for (Segment<?, ?> segment : cchm.segments) {
191 segment.cleanUp();
192 assertFalse(segment.isLocked());
193 Map<?, ?> table = segmentTable(segment);
195 segment.cleanUp();
197 assertTrue(table.size() <= segment.count);
220 for (Segment<?, ?> segment : cchm.segments) {
225 for (ReferenceEntry<?, ?> current : segment.writeQueue) {
234 assertSame(current, segment.getEntry(key, current.getHash()));
238 assertEquals(segment.count, entries.size());
240 assertTrue(segment.writeQueue.isEmpty());
247 for (ReferenceEntry<?, ?> current : segment.accessQueue) {
258 assertSame(current, segment.getEntry(key, current.getHash()));
262 assertEquals(segment.count, entries.size());
264 assertTrue(segment.accessQueue.isEmpty());
271 * that the prev/next links are correct, and that all items in each segment are also in that
272 * segment's eviction (recency) queue.
282 for (Segment<?, ?> segment : map.segments) {
283 drainRecencyQueue(segment);
284 assertEquals(0, segment.recencyQueue.size());
285 assertEquals(0, segment.readCount.get());
288 for (ReferenceEntry<?, ?> current : segment.accessQueue) {
295 assertSame(current, segment.getEntry(key, current.getHash()));
301 for (Segment segment : map.segments) {
302 assertEquals(0, segment.recencyQueue.size());
307 static int segmentSize(Segment<?, ?> segment) {
308 Map<?, ?> map = segmentTable(segment);
312 static <K, V> Map<K, V> segmentTable(Segment<K, V> segment) {
313 AtomicReferenceArray<? extends ReferenceEntry<K, V>> table = segment.table;
331 for (Segment<?, ?> segment : cchm.segments) {
332 size += writeQueueSize(segment);
337 static int writeQueueSize(Segment<?, ?> segment) {
338 return segment.writeQueue.size();
344 for (Segment<?, ?> segment : cchm.segments) {
345 size += accessQueueSize(segment);
350 static int accessQueueSize(Segment<?, ?> segment) {
351 return segment.accessQueue.size();
383 Segment<?, ?> segment = cchm.segments[0];
384 drainRecencyQueue(segment);
388 ReferenceEntry<?, ?> originalHead = segment.accessQueue.peek();
392 drainRecencyQueue(segment);
394 assertNotSame(originalHead, segment.accessQueue.peek());
415 for (Segment<?, ?> segment : cchm.segments) {
416 drainRecencyQueue(segment);
422 for (Segment<?, ?> segment : cchm.segments) {
423 expireEntries(segment, now);
424 assertEquals("Expiration queue must be empty by now", 0, writeQueueSize(segment));
425 assertEquals("Expiration queue must be empty by now", 0, accessQueueSize(segment));
426 assertEquals("Segments must be empty by now", 0, segmentSize(segment));
431 static void expireEntries(Segment<?, ?> segment, long now) {
432 segment.lock();
434 segment.expireEntries(now);
435 segment.cleanUp();
437 segment.unlock();
463 for (LocalCache.Segment segment : cchm.segments) {
464 assertEquals(0, segment.count);
465 assertEquals(0, segmentSize(segment));
466 assertTrue(segment.writeQueue.isEmpty());
467 assertTrue(segment.accessQueue.isEmpty());