Interface RLockReactive


  • public interface RLockReactive
    Reactive interface for Lock object
    Author:
    Nikita Koksharov
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      reactor.core.publisher.Mono<Boolean> forceUnlock()
      Unlocks the lock independently of its state
      reactor.core.publisher.Mono<Integer> getHoldCount()
      Number of holds on this lock by the current thread
      String getName()
      Returns name of object
      reactor.core.publisher.Mono<Boolean> isLocked()
      Checks if the lock locked by any thread
      reactor.core.publisher.Mono<Void> lock()
      Acquires the lock.
      reactor.core.publisher.Mono<Void> lock​(long threadId)
      Acquires the lock by thread with defined threadId.
      reactor.core.publisher.Mono<Void> lock​(long leaseTime, TimeUnit unit)
      Acquires the lock with defined leaseTime.
      reactor.core.publisher.Mono<Void> lock​(long leaseTime, TimeUnit unit, long threadId)
      Acquires the lock with defined leaseTime and threadId.
      reactor.core.publisher.Mono<Long> remainTimeToLive()
      Remaining time to live of the lock
      reactor.core.publisher.Mono<Boolean> tryLock()
      Tries to acquire the lock.
      reactor.core.publisher.Mono<Boolean> tryLock​(long threadId)
      Tries to acquire the lock by thread with specified threadId.
      reactor.core.publisher.Mono<Boolean> tryLock​(long waitTime, long leaseTime, TimeUnit unit)
      Tries to acquire the lock with defined leaseTime.
      reactor.core.publisher.Mono<Boolean> tryLock​(long waitTime, long leaseTime, TimeUnit unit, long threadId)
      Tries to acquire the lock by thread with specified threadId and leaseTime.
      reactor.core.publisher.Mono<Boolean> tryLock​(long waitTime, TimeUnit unit)
      Tries to acquire the lock.
      reactor.core.publisher.Mono<Void> unlock()
      Unlocks the lock
      reactor.core.publisher.Mono<Void> unlock​(long threadId)
      Unlocks the lock.
    • Method Detail

      • getName

        String getName()
        Returns name of object
        Returns:
        name - name of object
      • forceUnlock

        reactor.core.publisher.Mono<Boolean> forceUnlock()
        Unlocks the lock independently of its state
        Returns:
        true if lock existed and now unlocked otherwise false
      • unlock

        reactor.core.publisher.Mono<Void> unlock()
        Unlocks the lock
        Returns:
        void
      • unlock

        reactor.core.publisher.Mono<Void> unlock​(long threadId)
        Unlocks the lock. Throws IllegalMonitorStateException if lock isn't locked by thread with specified threadId.
        Parameters:
        threadId - id of thread
        Returns:
        void
      • tryLock

        reactor.core.publisher.Mono<Boolean> tryLock()
        Tries to acquire the lock.
        Returns:
        true if lock acquired otherwise false
      • lock

        reactor.core.publisher.Mono<Void> lock()
        Acquires the lock. Waits if necessary until lock became available.
        Returns:
        void
      • lock

        reactor.core.publisher.Mono<Void> lock​(long threadId)
        Acquires the lock by thread with defined threadId. Waits if necessary until lock became available.
        Parameters:
        threadId - id of thread
        Returns:
        void
      • lock

        reactor.core.publisher.Mono<Void> lock​(long leaseTime,
                                               TimeUnit unit)
        Acquires the lock with defined leaseTime. Waits if necessary until lock became available. Lock will be released automatically after defined leaseTime interval.
        Parameters:
        leaseTime - the maximum time to hold the lock after it's acquisition, if it hasn't already been released by invoking unlock. If leaseTime is -1, hold the lock until explicitly unlocked.
        unit - the time unit
        Returns:
        void
      • lock

        reactor.core.publisher.Mono<Void> lock​(long leaseTime,
                                               TimeUnit unit,
                                               long threadId)
        Acquires the lock with defined leaseTime and threadId. Waits if necessary until lock became available. Lock will be released automatically after defined leaseTime interval.
        Parameters:
        leaseTime - the maximum time to hold the lock after it's acquisition, if it hasn't already been released by invoking unlock. If leaseTime is -1, hold the lock until explicitly unlocked.
        unit - the time unit
        threadId - id of thread
        Returns:
        void
      • tryLock

        reactor.core.publisher.Mono<Boolean> tryLock​(long threadId)
        Tries to acquire the lock by thread with specified threadId.
        Parameters:
        threadId - id of thread
        Returns:
        true if lock acquired otherwise false
      • tryLock

        reactor.core.publisher.Mono<Boolean> tryLock​(long waitTime,
                                                     TimeUnit unit)
        Tries to acquire the lock. Waits up to defined waitTime if necessary until the lock became available.
        Parameters:
        waitTime - the maximum time to acquire the lock
        unit - time unit
        Returns:
        true if lock is successfully acquired, otherwise false if lock is already set.
      • tryLock

        reactor.core.publisher.Mono<Boolean> tryLock​(long waitTime,
                                                     long leaseTime,
                                                     TimeUnit unit)
        Tries to acquire the lock with defined leaseTime. Waits up to defined waitTime if necessary until the lock became available. Lock will be released automatically after defined leaseTime interval.
        Parameters:
        waitTime - the maximum time to acquire the lock
        leaseTime - lease time
        unit - time unit
        Returns:
        true if lock is successfully acquired, otherwise false if lock is already set.
      • tryLock

        reactor.core.publisher.Mono<Boolean> tryLock​(long waitTime,
                                                     long leaseTime,
                                                     TimeUnit unit,
                                                     long threadId)
        Tries to acquire the lock by thread with specified threadId and leaseTime. Waits up to defined waitTime if necessary until the lock became available. Lock will be released automatically after defined leaseTime interval.
        Parameters:
        threadId - id of thread
        waitTime - time interval to acquire lock
        leaseTime - time interval after which lock will be released automatically
        unit - the time unit of the waitTime and leaseTime arguments
        Returns:
        true if lock acquired otherwise false
      • getHoldCount

        reactor.core.publisher.Mono<Integer> getHoldCount()
        Number of holds on this lock by the current thread
        Returns:
        holds or 0 if this lock is not held by current thread
      • isLocked

        reactor.core.publisher.Mono<Boolean> isLocked()
        Checks if the lock locked by any thread
        Returns:
        true if locked otherwise false
      • remainTimeToLive

        reactor.core.publisher.Mono<Long> remainTimeToLive()
        Remaining time to live of the lock
        Returns:
        time in milliseconds -2 if the lock does not exist. -1 if the lock exists but has no associated expire.