/**
   * 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;
  }