Interface IUnitLock

All Known Implementing Classes:
PassthroughUnitLock

@Ser public interface IUnitLock
Definition of a unit model lock. Unit locks are optionally provided by units.
  • Method Summary

    Modifier and Type
    Method
    Description
    a()
    Attempt to acquire an auto-closable wrapper on this unit lock.
    a(long blockTimeoutMs)
    Attempt to acquire an auto-closable wrapper on this unit lock.
    long
    Get the default wait time lock acquisition will block before throwing a UnitLockedException.
    boolean
    Determine if the lock is held by _any_ thread.
    boolean
    Determine if the lock is held by _this_ thread.
    void
    Verify that the lock is help by this thread, and raise an exception if not.
  • Method Details

    • getDefaultBlockTimeoutMs

      long getDefaultBlockTimeoutMs()
      Get the default wait time lock acquisition will block before throwing a UnitLockedException.
      Returns:
      the allowed max blocking time; 0 means never fail (ie, fail if the lock is held by another thread); <0 means wait indefinitely
    • isLocked

      boolean isLocked()
      Determine if the lock is held by _any_ thread. Purely indicative, do not use for synchronization.
      Returns:
    • isLockedByCurrentThread

      boolean isLockedByCurrentThread()
      Determine if the lock is held by _this_ thread. Purely indicative, do not use for synchronization.
      Returns:
    • verifyLocked

      void verifyLocked()
      Verify that the lock is help by this thread, and raise an exception if not.
      Throws:
      JebRuntimeException - if the lock is not owned by the calling thread
    • a

      ACLock a()
      Attempt to acquire an auto-closable wrapper on this unit lock. If the lock cannot be acquired within the time frame defined by getDefaultBlockTimeoutMs(), it will throw a UnitLockedException (see getDefaultBlockTimeoutMs()).

      Best-practice: This method must be called in a try-with-resources.

      Returns:
    • a

      ACLock a(long blockTimeoutMs)
      Attempt to acquire an auto-closable wrapper on this unit lock. If the lock cannot be acquired within the provided time frame, the method will throw a UnitLockedException (see getDefaultBlockTimeoutMs()).

      Best-practice: This method must be called in a try-with-resources.

      Parameters:
      blockTimeoutMs -
      Returns: