You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
783 B
28 lines
783 B
package nova.monadic_sfx.executors
|
|
|
|
import com.typesafe.scalalogging.Logger
|
|
import monix.execution.Scheduler
|
|
import monix.execution.UncaughtExceptionReporter
|
|
import monix.execution.schedulers.TracingScheduler
|
|
|
|
class Schedulers(
|
|
val blocking: Scheduler = TracingScheduler(
|
|
Scheduler
|
|
.io()
|
|
.withUncaughtExceptionReporter(Schedulers.reporter)
|
|
),
|
|
val async: Scheduler = Scheduler.traced
|
|
.withUncaughtExceptionReporter(Schedulers.reporter),
|
|
val fx: Scheduler = TracingScheduler(
|
|
JFXExecutionContexts.fxScheduler
|
|
.withUncaughtExceptionReporter(Schedulers.reporter)
|
|
)
|
|
)
|
|
|
|
object Schedulers {
|
|
val reporter = UncaughtExceptionReporter { ex =>
|
|
val logger = Logger[Schedulers]
|
|
logger.error("Uncaught exception", ex)
|
|
}
|
|
|
|
}
|