public interface

IUnitLock

com.pnfsoftware.jeb.core.units.IUnitLock
Known Indirect Subclasses

Class Overview

Definition of a unit model lock. Unit locks are optionally provided by units.

Summary

Public Methods
abstract ACLock a(long blockTimeoutMs)
Attempt to acquire an auto-closable wrapper on this unit lock.
abstract ACLock a()
Attempt to acquire an auto-closable wrapper on this unit lock.
abstract long getDefaultBlockTimeoutMs()
Get the default wait time lock acquisition will block before throwing a UnitLockedException.
abstract boolean isLocked()
Determine if the lock is held by _any_ thread.
abstract boolean isLockedByCurrentThread()
Determine if the lock is held by _this_ thread.
abstract void verifyLocked()
Verify that the lock is help by this thread, and raise an exception if not.

Public Methods

public abstract 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.

public abstract 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.

public abstract 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

public abstract boolean isLocked ()

Determine if the lock is held by _any_ thread. Purely indicative, do not use for synchronization.

public abstract boolean isLockedByCurrentThread ()

Determine if the lock is held by _this_ thread. Purely indicative, do not use for synchronization.

public abstract 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