Class SegmentedConcurrentMap.LockAction

  • All Implemented Interfaces:
    SegmentedHashMap.EntryAction
    Enclosing class:
    SegmentedConcurrentMap

    protected class SegmentedConcurrentMap.LockAction
    extends Object
    implements SegmentedHashMap.EntryAction
    Action support for lock(). This action attempts to lock the specified key in this map, and is expected to run while holding the segment-lock for the specified key.

    The context object for a LockAction is the prospective lock-holder.

    The result of invoking a LockAction is NO_VALUE if the key is successfully locked, or the Entry object corresponding to the specified key if the key could not be successfully locked.

    • Constructor Detail

      • LockAction

        protected LockAction()
    • Method Detail

      • invokeFound

        public Object invokeFound​(Object oKey,
                                  Object oContext,
                                  SegmentedHashMap.Entry[] aeBucket,
                                  int nBucket,
                                  SegmentedHashMap.Entry entryPrev,
                                  SegmentedHashMap.Entry entryCur)
        Invoke some action, holding the segment lock, when a matching Entry is found.
        Specified by:
        invokeFound in interface SegmentedHashMap.EntryAction
        Parameters:
        oKey - the key to which the action is applied
        oContext - opaque context specific to the action
        aeBucket - the bucket array
        nBucket - the index into the bucket array
        entryPrev - the Entry object immediately preceding the Entry that was found, or null
        entryCur - the Entry object that was found
        Returns:
        an opaque result value
      • invokeNotFound

        public Object invokeNotFound​(Object oKey,
                                     Object oContext,
                                     SegmentedHashMap.Entry[] aeBucket,
                                     int nBucket)
        Invoke some action, holding the segment lock, when no matching Entry is found.
        Specified by:
        invokeNotFound in interface SegmentedHashMap.EntryAction
        Parameters:
        oKey - the key to which the action is applied
        oContext - opaque context specific to the action
        aeBucket - the bucket array
        nBucket - the index into the bucket array
        Returns:
        an opaque result value