Interface RLockReactive

All Known Subinterfaces:
RFencedLockReactive

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

    Modifier and Type
    Method
    Description
    reactor.core.publisher.Mono<Boolean>
    Unlocks the lock independently of its state
    reactor.core.publisher.Mono<Integer>
    Number of holds on this lock by the current thread
    Returns name of object
    reactor.core.publisher.Mono<Boolean>
    isHeldByThread(long threadId)
    Checks if the lock is held by thread with defined threadId
    reactor.core.publisher.Mono<Boolean>
    Checks if the lock locked by any thread
    reactor.core.publisher.Mono<Void>
    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>
    Remaining time to live of the lock
    reactor.core.publisher.Mono<Boolean>
    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>
    Unlocks the lock
    reactor.core.publisher.Mono<Void>
    unlock(long threadId)
    Unlocks the lock.
  • Method Details

    • 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:
      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
      threadId - id of thread
      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
    • isHeldByThread

      reactor.core.publisher.Mono<Boolean> isHeldByThread(long threadId)
      Checks if the lock is held by thread with defined threadId
      Parameters:
      threadId - Thread ID of locking thread
      Returns:
      true if held by thread with given id 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.