class PageList {

    boolean decrementUsage( long pageRef )
    {
        // This is intentionally left benignly racy for performance.
        long address = offPageBinding( pageRef );
        long value = UnsafeUtil.getLongVolatile( address );
        long usage = value & MASK_USAGE_COUNT;
        if ( usage > 0 )
        {
            long update = value - 1;
            // See `incrementUsage` about why we use `compareAndSwapLong`.
            UnsafeUtil.compareAndSwapLong( null, address, value, update );
        }
        return usage <= 1;
    }

      PageList( int pageCount, int cachePageSize, MemoryAllocator memoryAllocator, SwapperSet swappers,
              long victimPageAddress, long bufferAlignment );
      PageList( PageList pageList );

}