Packages

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
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. final def available: UIO[Long]

    The number of permits currently available.

  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  17. def toString(): String
    Definition Classes
    AnyRef → Any
  18. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  21. final def withPermit[R, E, A](task: ZIO[R, E, A]): ZIO[R, E, A]

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

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

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

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

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

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

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

Deprecated Value Members

  1. final def acquire: UIO[Unit]

    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.

    Annotations
    @deprecated
    Deprecated

    (Since version 1.0.0) use withPermit

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

    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)

    Annotations
    @deprecated
    Deprecated

    (Since version 1.0.0) use withPermits

  3. final def release: UIO[Unit]

    Releases a single permit.

    Releases a single permit.

    Annotations
    @deprecated
    Deprecated

    (Since version 1.0.0) use withPermit

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

    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.

    Annotations
    @deprecated
    Deprecated

    (Since version 1.0.0) use withPermits

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped