Class PoolSubpage<T>

    • Field Detail

      • elemSize

        final int elemSize
      • pageShifts

        private final int pageShifts
      • runOffset

        private final int runOffset
      • runSize

        private final int runSize
      • bitmap

        private final long[] bitmap
      • bitmapLength

        private final int bitmapLength
      • maxNumElems

        private final int maxNumElems
      • headIndex

        final int headIndex
      • doNotDestroy

        boolean doNotDestroy
      • nextAvail

        private int nextAvail
      • numAvail

        private int numAvail
      • lock

        final java.util.concurrent.locks.ReentrantLock lock
    • Constructor Detail

      • PoolSubpage

        PoolSubpage​(int headIndex)
        Special constructor that creates a linked list head
      • PoolSubpage

        PoolSubpage​(PoolSubpage<T> head,
                    PoolChunk<T> chunk,
                    int pageShifts,
                    int runOffset,
                    int runSize,
                    int elemSize)
    • Method Detail

      • allocate

        long allocate()
        Returns the bitmap index of the subpage allocation.
      • free

        boolean free​(PoolSubpage<T> head,
                     int bitmapIdx)
        Returns:
        true if this subpage is in use. false if this subpage is not used by its chunk and thus it's OK to be released.
      • addToPool

        private void addToPool​(PoolSubpage<T> head)
      • removeFromPool

        private void removeFromPool()
      • setNextAvail

        private void setNextAvail​(int bitmapIdx)
      • getNextAvail

        private int getNextAvail()
      • findNextAvail

        private int findNextAvail()
      • findNextAvail0

        private int findNextAvail0​(int i,
                                   long bits)
      • toHandle

        private long toHandle​(int bitmapIdx)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • maxNumElements

        public int maxNumElements()
        Description copied from interface: PoolSubpageMetric
        Return the number of maximal elements that can be allocated out of the sub-page.
        Specified by:
        maxNumElements in interface PoolSubpageMetric
      • isDoNotDestroy

        boolean isDoNotDestroy()
      • destroy

        void destroy()
      • lock

        void lock()
      • unlock

        void unlock()