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
- 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
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.
-
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
- @native() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): 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[_]
- 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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
withPermit[R, E, A](task: ZIO[R, E, A]): ZIO[R, E, A]
Acquires a permit, executes the action and releases the permits right after.
-
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.