final class IORuntimeBuilder extends IORuntimeBuilderPlatform
Builder object for creating custom IORuntime
s. Useful for creating IORuntime based on
the default one but with some wrappers around execution contexts or custom shutdown hooks.
- Source
- IORuntimeBuilder.scala
- Alphabetic
- By Inheritance
- IORuntimeBuilder
- IORuntimeBuilderPlatform
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- def addShutdownHook(shutdown: () => Unit): IORuntimeBuilder
Introduce additional shutdown hook to be executed after compute, blocking and scheduler shutdown logic is invoked
Introduce additional shutdown hook to be executed after compute, blocking and scheduler shutdown logic is invoked
- shutdown
the shutdown hook executed upon IORuntime shutdown
- def build(): IORuntime
- def setBlocking(blocking: ExecutionContext, shutdown: () => Unit): IORuntimeBuilder
Override the default blocking execution context
Override the default blocking execution context
- blocking
the ExecutionContext for blocking operations
- shutdown
ExecutionContext shutdown hook
- def setCompute(compute: ExecutionContext, shutdown: () => Unit): IORuntimeBuilder
Set a custom compute pool
Set a custom compute pool
- compute
the ExecutionContext for the compute pool
- shutdown
IORuntime shutdown hook
- def setConfig(config: IORuntimeConfig): IORuntimeBuilder
Provide custom IORuntimeConfig for created IORuntime
Provide custom IORuntimeConfig for created IORuntime
- config
the runtime configuration
- def setFailureReporter(f: (Throwable) => Unit): IORuntimeBuilder
- def setScheduler(scheduler: Scheduler, shutdown: () => Unit): IORuntimeBuilder
Override the default scheduler
Override the default scheduler
- scheduler
the custom scheduler
- shutdown
Scheduler shutdown hook
- def transformBlocking(transform: (ExecutionContext) => ExecutionContext): IORuntimeBuilder
Modifies the execution underlying blocking execution context.
Modifies the execution underlying blocking execution context. Useful in case you want to use the default blocking context but add extra logic to
execute
, e.g. for adding instrumentation.- transform
the modification of the current blocking execution context
- def transformCompute(transform: (ExecutionContext) => ExecutionContext): IORuntimeBuilder
Modifies the execution underlying execution context.
Modifies the execution underlying execution context. Useful in case you want to use the default compute but add extra logic to
execute
, e.g. for adding instrumentation.- transform
the modification of the current compute execution context