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.
- Alphabetic
- By Inheritance
- Semaphore
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def acquire: UIO[Unit]
Acquires a single permit.
Acquires a single permit. This must be paired with
releasein 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.
- 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)
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- final def available: UIO[Long]
The number of permits currently available.
- def clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def release: UIO[Unit]
Releases a single permit.
- 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.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- 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.
- final def withPermitManaged[R, E]: ZManaged[R, E, Unit]
Acquires a permit in a zio.ZManaged and releases the permit in the finalizer.
- final def withPermits[R, E, A](n: Long)(task: ZIO[R, E, A]): ZIO[R, E, A]
Acquires
npermits, executes the action and releases the permits right after. - final def withPermitsManaged[R, E](n: Long): ZManaged[R, E, Unit]
Acquires
npermits in a zio.ZManaged and releases the permits in the finalizer.