Class PendingOpMap


  • final class PendingOpMap
    extends java.lang.Object
    • Constructor Summary

      Constructors 
      Constructor Description
      PendingOpMap​(int initialCapacity)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private static int calcMaxSize​(int capacity)  
      private static int expandCapacity​(int capacity)  
      (package private) int findSlot​(long token)  
      private static int hashIndex​(long key, int mask)  
      private void insertAt​(int index, long token, int registrationId, byte op, long userData)  
      private void insertDuringRehash​(long token, int registrationId, byte op, long userData)  
      (package private) long nextToken()  
      (package private) byte op​(int slot)  
      private int probeNext​(int index)  
      (package private) void registerNormal​(long token, int registrationId, byte op, long userData)  
      (package private) int registrationId​(int slot)  
      private void rehash​(int newCapacity)  
      (package private) void release​(int slot)  
      (package private) static long token​(long sequence)
      Slow-path and internal tokens are negative so they can be distinguished from packed fast-path userdata by checking bit 63.
      (package private) static long tokenSequence​(long token)  
      (package private) long userData​(int slot)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • tokens

        private long[] tokens
      • registrationIds

        private int[] registrationIds
      • ops

        private byte[] ops
      • userDatas

        private long[] userDatas
      • mask

        private int mask
      • maxSize

        private int maxSize
      • size

        private int size
      • tombstones

        private int tombstones
      • nextSequence

        private final java.util.concurrent.atomic.AtomicLong nextSequence
    • Constructor Detail

      • PendingOpMap

        PendingOpMap​(int initialCapacity)
    • Method Detail

      • nextToken

        long nextToken()
      • registerNormal

        void registerNormal​(long token,
                            int registrationId,
                            byte op,
                            long userData)
      • findSlot

        int findSlot​(long token)
      • registrationId

        int registrationId​(int slot)
      • op

        byte op​(int slot)
      • userData

        long userData​(int slot)
      • release

        void release​(int slot)
      • insertAt

        private void insertAt​(int index,
                              long token,
                              int registrationId,
                              byte op,
                              long userData)
      • rehash

        private void rehash​(int newCapacity)
      • insertDuringRehash

        private void insertDuringRehash​(long token,
                                        int registrationId,
                                        byte op,
                                        long userData)
      • token

        static long token​(long sequence)
        Slow-path and internal tokens are negative so they can be distinguished from packed fast-path userdata by checking bit 63.
      • tokenSequence

        static long tokenSequence​(long token)
      • hashIndex

        private static int hashIndex​(long key,
                                     int mask)
      • probeNext

        private int probeNext​(int index)
      • calcMaxSize

        private static int calcMaxSize​(int capacity)
      • expandCapacity

        private static int expandCapacity​(int capacity)