Interface RLockRx


  • public interface RLockRx
    RxJava2 interface for Lock object
    Author:
    Nikita Koksharov
    • Method Summary

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

      • getName

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

        io.reactivex.rxjava3.core.Single<Boolean> forceUnlock()
        Unlocks the lock independently of its state
        Returns:
        true if lock existed and now unlocked otherwise false
      • unlock

        io.reactivex.rxjava3.core.Completable unlock()
        Unlocks the lock
        Returns:
        void
      • unlock

        io.reactivex.rxjava3.core.Completable 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

        io.reactivex.rxjava3.core.Single<Boolean> tryLock()
        Tries to acquire the lock.
        Returns:
        true if lock acquired otherwise false
      • lock

        io.reactivex.rxjava3.core.Completable lock()
        Acquires the lock. Waits if necessary until lock became available.
        Returns:
        void
      • lock

        io.reactivex.rxjava3.core.Completable 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

        io.reactivex.rxjava3.core.Completable 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

        io.reactivex.rxjava3.core.Completable 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

        io.reactivex.rxjava3.core.Single<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

        io.reactivex.rxjava3.core.Single<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

        io.reactivex.rxjava3.core.Single<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

        io.reactivex.rxjava3.core.Single<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

        io.reactivex.rxjava3.core.Single<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

        io.reactivex.rxjava3.core.Single<Boolean> isLocked()
        Checks if the lock locked by any thread
        Returns:
        true if locked otherwise false
      • remainTimeToLive

        io.reactivex.rxjava3.core.Single<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.