/** * Tries to remove one item from queue. * * @return number of bytes that was free. {@code -1} if queue is empty. */ private int shrink0() { EvictableEntry<K, V> entry = queue.poll(); if (entry == null) return -1; int size = 0; Node<EvictableEntry<K, V>> meta = entry.removeMeta(); if (meta != null) { size = entry.size(); memSize.add(-size); if (!entry.evict()) touch(entry); } return size; }