Class/Object

zio

Semaphore

Related Docs: object Semaphore | package zio

Permalink

final class Semaphore extends Serializable

An asynchronous semaphore, which is a generalization of a mutex. Semaphores have a certain number of permits, which can be held and released concurrently by different parties. Attempts to acquire more permits than available result in the acquiring fiber being suspended until the specified number of permits become available.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Semaphore
  2. Serializable
  3. Serializable
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def acquire: UIO[Unit]

    Permalink

    Acquires a single permit.

    Acquires a single permit. This must be paired with release in a safe fashion in order to avoid leaking permits.

    If a permit is not available, the fiber invoking this method will be suspended until a permit is available.

  5. final def acquireN(n: Long): UIO[Unit]

    Permalink

    Acquires a specified number of permits.

    Acquires a specified number of permits.

    If the specified number of permits are not available, the fiber invoking this method will be suspended until the permits are available.

    Ported from @mpilquist work in Cats Effect (https://github.com/typelevel/cats-effect/pull/403)

  6. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  7. final def available: UIO[Long]

    Permalink

    The number of permits currently available.

  8. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  9. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  13. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  14. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  15. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  16. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  18. final def release: UIO[Unit]

    Permalink

    Releases a single permit.

  19. final def releaseN(toRelease: Long): UIO[Unit]

    Permalink

    Releases a specified number of permits.

    Releases a specified number of permits.

    If fibers are currently suspended until enough permits are available, they will be woken up (in FIFO order) if this action releases enough of them.

  20. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  21. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  22. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def withPermit[R, E, A](task: ZIO[R, E, A]): ZIO[R, E, A]

    Permalink

    Acquires a permit, executes the action and releases the permit right after.

  26. final def withPermitManaged[R, E]: ZManaged[R, E, Unit]

    Permalink

    Acquires a permit in a zio.ZManaged and releases the permit in the finalizer.

  27. final def withPermits[R, E, A](n: Long)(task: ZIO[R, E, A]): ZIO[R, E, A]

    Permalink

    Acquires n permits, executes the action and releases the permits right after.

  28. final def withPermitsManaged[R, E](n: Long): ZManaged[R, E, Unit]

    Permalink

    Acquires n permits in a zio.ZManaged and releases the permits in the finalizer.

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped