Interface RLockRx


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

    Modifier and Type
    Method
    Description
    io.reactivex.rxjava3.core.Single<Boolean>
    Unlocks the lock independently of its state
    io.reactivex.rxjava3.core.Single<Integer>
    Number of holds on this lock by the current thread
    Returns name of object
    io.reactivex.rxjava3.core.Single<Boolean>
    Checks if the lock locked by any thread
    io.reactivex.rxjava3.core.Completable
    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>
    Remaining time to live of the lock
    io.reactivex.rxjava3.core.Single<Boolean>
    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
    Unlocks the lock
    io.reactivex.rxjava3.core.Completable
    unlock(long threadId)
    Unlocks the lock.
  • Method Details

    • 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.