ReentrantLock

final class ReentrantLock
Companion:
object
class Object
trait Matchable
class Any

Value members

Concrete methods

def hasQueuedFiber(fiberId: Id): UIO[Boolean]

Queries whether the given fiber is waiting to acquire this lock.

Queries whether the given fiber is waiting to acquire this lock.

def isFair: Boolean

Returns true if this lock has fairness set to true.

Returns true if this lock has fairness set to true.

Concrete fields

lazy val hasQueuedFibers: UIO[Boolean]

Queries whether any fibers are waiting to acquire this lock.

Queries whether any fibers are waiting to acquire this lock.

lazy val holdCount: UIO[Int]

Queries the number of holds on this lock by the current fiber.

Queries the number of holds on this lock by the current fiber.

lazy val isHeldByCurrentFiber: UIO[Boolean]

Queries if this lock is held by the current fiber.

Queries if this lock is held by the current fiber.

lazy val lock: UIO[Unit]

Acquires the lock.

Acquires the lock.

Acquires the lock if it is not held by another fiber and returns immediately, setting the lock hold count to one.

If the current fiber already holds the lock then the hold count is incremented by one and the method returns immediately.

If the lock is held by another fiber then the current fiber is put to sleep until the lock has been acquired, at which time the lock hold count is set to one.

lazy val locked: UIO[Boolean]

Queries if this lock is held by any fiber.

Queries if this lock is held by any fiber.

lazy val owner: UIO[Option[Id]]

Returns the fiber ID of the fiber that currently owns this lock, if owned, or None otherwise.

Returns the fiber ID of the fiber that currently owns this lock, if owned, or None otherwise.

lazy val queueLength: UIO[Int]

Returns the number of fibers waiting to acquire this lock.

Returns the number of fibers waiting to acquire this lock.

lazy val queuedFibers: UIO[List[Id]]

Returns the fiber IDs of the fibers that are waiting to acquire this lock.

Returns the fiber IDs of the fibers that are waiting to acquire this lock.

lazy val tryLock: UIO[Boolean]

Acquires the lock only if it is not held by another fiber at the time of invocation.

Acquires the lock only if it is not held by another fiber at the time of invocation.

lazy val unlock: UIO[Unit]

Attempts to release this lock.

Attempts to release this lock.

If the current fiber is the holder of this lock then the hold count is decremented. If the hold count is now zero then the lock is released. If the current thread is not the holder of this lock then nothing happens.

lazy val withLock: UManaged[Int]

Acquires and releases the lock as a managed effect.

Acquires and releases the lock as a managed effect.