Home | History | Annotate | Download | only in cache

Lines Matching defs:segment

29 import com.google.common.cache.LocalCache.Segment;
102 * Forces the segment containing the given {@code key} to expand (see
103 * {@link Segment#expand()}.
110 Segment<K, V> segment = map.segmentFor(hash);
111 segment.expand();
137 for (Segment<?, ?> segment : map.segments) {
138 drainRecencyQueue(segment);
143 static void drainRecencyQueue(Segment<?, ?> segment) {
144 segment.lock();
146 segment.cleanUp();
148 segment.unlock();
159 for (LocalCache.Segment<?, ?> segment : cchm.segments) {
160 drainReferenceQueue(segment);
164 static void drainReferenceQueue(LocalCache.Segment<?, ?> segment) {
165 segment.lock();
167 segment.drainReferenceQueues();
169 segment.unlock();
176 for (Segment<?, ?> segment : map.segments) {
177 totalSize += segment.maxSegmentWeight;
184 * segment's count matches its #elements (after cleanup), each segment is unlocked, each entry
195 for (Segment<?, ?> segment : cchm.segments) {
196 segment.cleanUp();
197 assertFalse(segment.isLocked());
198 Map<?, ?> table = segmentTable(segment);
200 segment.cleanUp();
202 assertTrue(table.size() <= segment.count);
225 for (Segment<?, ?> segment : cchm.segments) {
230 for (ReferenceEntry<?, ?> current : segment.writeQueue) {
239 assertSame(current, segment.getEntry(key, current.getHash()));
243 assertEquals(segment.count, entries.size());
245 assertTrue(segment.writeQueue.isEmpty());
252 for (ReferenceEntry<?, ?> current : segment.accessQueue) {
263 assertSame(current, segment.getEntry(key, current.getHash()));
267 assertEquals(segment.count, entries.size());
269 assertTrue(segment.accessQueue.isEmpty());
276 * that the prev/next links are correct, and that all items in each segment are also in that
277 * segment's eviction (recency) queue.
287 for (Segment<?, ?> segment : map.segments) {
288 drainRecencyQueue(segment);
289 assertEquals(0, segment.recencyQueue.size());
290 assertEquals(0, segment.readCount.get());
293 for (ReferenceEntry<?, ?> current : segment.accessQueue) {
300 assertSame(current, segment.getEntry(key, current.getHash()));
306 for (Segment<?, ?> segment : map.segments) {
307 assertEquals(0, segment.recencyQueue.size());
312 static int segmentSize(Segment<?, ?> segment) {
313 Map<?, ?> map = segmentTable(segment);
317 static <K, V> Map<K, V> segmentTable(Segment<K, V> segment) {
318 AtomicReferenceArray<? extends ReferenceEntry<K, V>> table = segment.table;
336 for (Segment<?, ?> segment : cchm.segments) {
337 size += writeQueueSize(segment);
342 static int writeQueueSize(Segment<?, ?> segment) {
343 return segment.writeQueue.size();
349 for (Segment<?, ?> segment : cchm.segments) {
350 size += accessQueueSize(segment);
355 static int accessQueueSize(Segment<?, ?> segment) {
356 return segment.accessQueue.size();
388 Segment<?, ?> segment = cchm.segments[0];
389 drainRecencyQueue(segment);
393 ReferenceEntry<?, ?> originalHead = segment.accessQueue.peek();
397 drainRecencyQueue(segment);
399 assertNotSame(originalHead, segment.accessQueue.peek());
422 for (Segment<?, ?> segment : cchm.segments) {
423 drainRecencyQueue(segment);
429 for (Segment<?, ?> segment : cchm.segments) {
430 expireEntries(segment, now);
431 assertEquals("Expiration queue must be empty by now", 0, writeQueueSize(segment));
432 assertEquals("Expiration queue must be empty by now", 0, accessQueueSize(segment));
433 assertEquals("Segments must be empty by now", 0, segmentSize(segment));
438 static void expireEntries(Segment<?, ?> segment, long now) {
439 segment.lock();
441 segment.expireEntries(now);
442 segment.cleanUp();
444 segment.unlock();
470 for (LocalCache.Segment<?, ?> segment : cchm.segments) {
471 assertEquals(0, segment.count);
472 assertEquals(0, segmentSize(segment));
473 assertTrue(segment.writeQueue.isEmpty());
474 assertTrue(segment.accessQueue.isEmpty());