Interface LockManager

    • Method Detail

      • lock

        KeyAwareLockPromise lock​(Object key,
                                 Object lockOwner,
                                 long time,
                                 TimeUnit unit)
        Attempts to lock the key if the lock isn't already held by the lockOwner.

        This method is non-blocking and return immediately a LockPromise. The LockPromise can (and should) be used by the invoker to check when the lock is really acquired by invoking LockPromise.lock().

        Parameters:
        key - key to lock.
        lockOwner - the owner of the lock.
        time - the maximum time to wait for the lock
        unit - the time unit of the time argument
        Returns:
        the KeyAwareLockPromise associated to this keys.
      • lockAll

        KeyAwareLockPromise lockAll​(Collection<?> keys,
                                    Object lockOwner,
                                    long time,
                                    TimeUnit unit)
        Same as lock(Object, Object, long, TimeUnit) but for multiple keys.

        It ensures no deadlocks if the method is invoked by different lock owners for the same set (or subset) of keys.

        Parameters:
        keys - keys to lock.
        lockOwner - the owner of the lock.
        time - the maximum time to wait for the lock
        unit - the time unit of the time argument
        Returns:
        the KeyAwareLockPromise associated to this keys.
      • unlock

        void unlock​(Object key,
                    Object lockOwner)
        Releases the lock for the key if the lockOwner is the lock owner.

        Note this method will unlock a lock where the key is the lockOwner

        Parameters:
        key - key to unlock.
        lockOwner - the owner of the lock.
      • unlockAll

        void unlockAll​(Collection<?> keys,
                       Object lockOwner)
        Same as unlock(Object, Object) but for multiple keys.

        Note this method will not unlock a lock where the key is the lockOwner

        Parameters:
        keys - keys to unlock.
        lockOwner - the owner of the lock.
      • unlockAll

        void unlockAll​(InvocationContext context)
        Same as unlockAll(context.getLockedKeys(), context.getKeyLockOwner();.

        Note this method will not unlock a lock where the key is the lockOwner

        Parameters:
        context - the context with the locked keys and the lock owner.
      • ownsLock

        boolean ownsLock​(Object key,
                         Object lockOwner)
        Tests if the lockOwner owns a lock on the key.
        Parameters:
        key - key to test.
        lockOwner - the owner of the lock.
        Returns:
        true if the owner does own the lock on the key, false otherwise.
      • isLocked

        boolean isLocked​(Object key)
        Tests if the key is locked.
        Parameters:
        key - key to test.
        Returns:
        true if the key is locked, false otherwise.
      • getOwner

        Object getOwner​(Object key)
        Retrieves the owner of the lock for the key.
        Returns:
        the owner of the lock, or null if not locked.
      • printLockInfo

        String printLockInfo()
        Prints lock information for all locks.
        Returns:
        the lock information
      • getNumberOfLocksHeld

        int getNumberOfLocksHeld()
        Returns:
        the number of locks held.
      • getLock

        org.infinispan.util.concurrent.locks.impl.InfinispanLock getLock​(Object key)