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
- All
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( ... ) @native()
-
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: Any): 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.
-
def
finalize(): Unit
- Attributes
- protected[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()
-
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(): 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
- @throws( ... ) @native()