A fiber-based supervisor utility for evaluating effects across an impure
boundary. This is useful when working with reactive interfaces that produce
potentially many values (as opposed to one), and for each value, some effect
in F
must be performed (like inserting it into a queue).
Dispatcher is a kind of Supervisor and accordingly follows the same scoping and lifecycle rules with respect to submitted effects.
Performance note: all clients of a single Dispatcher instance will contend with each other when submitting effects. However, Dispatcher instances are cheap to create and have minimal overhead (a single fiber), so they can be allocated on-demand if necessary.
Notably, Dispatcher replaces Effect and ConcurrentEffect from Cats Effect 2 while only requiring an cats.effect.kernel.Async constraint.
- Companion
- object
Value members
Abstract methods
Submits an effect to be executed, returning a Future
that holds the
result of its evaluation, along with a cancelation token that can be
used to cancel the original effect.
Submits an effect to be executed, returning a Future
that holds the
result of its evaluation, along with a cancelation token that can be
used to cancel the original effect.
Concrete methods
Submits an effect to be executed with fire-and-forget semantics.
Submits an effect to be executed with fire-and-forget semantics.
Submits an effect to be executed, returning a cancelation token that can be used to cancel it.
Submits an effect to be executed, returning a cancelation token that can be used to cancel it.
Inherited methods
Submits an effect to be executed and indefinitely blocks until a result is produced. This function will throw an exception if the submitted effect terminates with an error.
Submits an effect to be executed and indefinitely blocks until a result is produced. This function will throw an exception if the submitted effect terminates with an error.
- Inherited from
- DispatcherPlatform
Submits an effect to be executed and blocks for at most the specified timeout for a result to be produced. This function will throw an exception if the submitted effect terminates with an error.
Submits an effect to be executed and blocks for at most the specified timeout for a result to be produced. This function will throw an exception if the submitted effect terminates with an error.
- Inherited from
- DispatcherPlatform