Forks effects into a FiberSet from plain code; see
FiberSet.runtime.
Functions#
__init__#
__init__(fiber_set, runtime) -> None| Parameter | Type | Description |
|---|---|---|
fiber_set | FiberSet[A, E] | |
runtime | CapturedRuntime |
def __init__(self, fiber_set: FiberSet[A, E], runtime: CapturedRuntime) -> None:
self._set = fiber_set
self._runtime = runtime__call__#
__call__(eff, /, *, propagate_interruption=False, uninterruptible=False, scheduler=None) -> Fiber[A, E]Fork eff on a root fiber and add it to the set. A closed set
gives back an interrupted fiber that never runs eff.
| Parameter | Type | Description |
|---|---|---|
eff | Effect[A, E, R] | |
propagate_interruption | bool = False | |
uninterruptible | bool = False | |
scheduler | Scheduler | None = None |
Returns Fiber[A, E]
def __call__(
self,
eff: Effect[A, E, R],
/,
*,
propagate_interruption: bool = False,
uninterruptible: bool = False,
scheduler: Scheduler | None = None,
) -> Fiber[A, E]:
"""Fork ``eff`` on a root fiber and add it to the set. A closed set
gives back an interrupted fiber that never runs ``eff``."""
require_effect(eff, "eff")
if self._set._fibers is None:
return self._runtime.interrupted()
fiber = self._runtime.fork(eff, uninterruptible=uninterruptible, scheduler=scheduler)
self._set.unsafe_add(fiber, propagate_interruption=propagate_interruption)
return fiber