sealed abstract class ZScope[+A] extends AnyRef
A ZScope[A]
is a value that allows adding finalizers identified by a key.
Scopes are closed with a value of type A
, which is provided to all the
finalizers when the scope is released.
For safety reasons, this interface has no method to close a scope. Rather, an
open scope may be required with ZScope.make
, which returns a function that
can close a scope. This allows scopes to be safely passed around without fear
they will be accidentally closed.
- Self Type
- ZScope[A]
- Alphabetic
- By Inheritance
- ZScope
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def closed: UIO[Boolean]
Determines if the scope is closed at the instant the effect executes.
Determines if the scope is closed at the instant the effect executes. Returns an effect that will succeed with
true
if the scope is closed, andfalse
otherwise. - abstract def empty: UIO[Boolean]
Determines if the scope is empty (has no finalizers) at the instant the effect executes.
Determines if the scope is empty (has no finalizers) at the instant the effect executes. The returned effect will succeed with
true
if the scope is empty, andfalse
otherwise. - abstract def ensure(finalizer: (A) => UIO[Any], mode: Mode = ZScope.Mode.Strong): UIO[Either[A, Key]]
Adds a finalizer to the scope.
Adds a finalizer to the scope. If successful, this ensures that when the scope exits, the finalizer will be run, assuming the key has not been garbage collected.
The returned effect will succeed with
Right
with a key if the finalizer was added to the scope orLeft
with the value the scope was closed with if the scope is already closed. - abstract def released: UIO[Boolean]
Determines if the scope has been released at the moment the effect is executed executed.
Determines if the scope has been released at the moment the effect is executed executed. A scope can be closed yet unreleased, if it has been extended by another scope which is not yet released.
Concrete 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 asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- def deny(key: => Key): UIO[Boolean]
Prevents a previously added finalizer from being executed when the scope is closed.
Prevents a previously added finalizer from being executed when the scope is closed. The returned effect will succeed with
true
if the finalizer will not be run by this scope, andfalse
otherwise. - final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def extend(that: ZScope[Any]): UIO[Boolean]
Extends the specified scope so that it will not be closed until this scope is closed.
Extends the specified scope so that it will not be closed until this scope is closed. Note that extending a scope into the global scope will result in the scope *never* being closed!
Scope extension does not result in changes to the scope contract: open scopes must *always* be closed.
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- 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() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- def open: UIO[Boolean]
Determines if the scope is open at the moment the effect is executed.
Determines if the scope is open at the moment the effect is executed. Returns an effect that will succeed with
true
if the scope is open, andfalse
otherwise. - final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- 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 wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])