Package org.drasyl.util
Class DrasylScheduler
java.lang.Object
org.drasyl.util.DrasylScheduler
It is an intentional behavior that this scheduler ensures that the JVM is not automatically
 terminated once all sequential program flows have been processed. A corePoolSize of 0 would
 prevent this behavior, but would also have a negative effect on performance. The ThreadPool would
 not start to create a new thread to process until the workQueue limit is reached. Assuming that
 the workQueue limit is never reached, the schedule would never start processing the already
 submitted tasks.
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected static booleanprotected static booleanstatic final long
- 
Method SummaryModifier and TypeMethodDescriptionstatic io.reactivex.rxjava3.core.SchedulerUse thisSchedulerfor slow and heavy task that does do longer computations.static io.reactivex.rxjava3.core.SchedulerUse thisSchedulerfor fast and light task that does not do heavy computations.static CompletableFuture<Void>shutdown()Shutdown the two schedulers.
- 
Field Details- 
SHUTDOWN_TIMEOUTpublic static final long SHUTDOWN_TIMEOUT- See Also:
 
- 
lightSchedulerCreatedprotected static volatile boolean lightSchedulerCreated
- 
heavySchedulerCreatedprotected static volatile boolean heavySchedulerCreated
 
- 
- 
Method Details- 
getInstanceLightpublic static io.reactivex.rxjava3.core.Scheduler getInstanceLight()Use thisSchedulerfor fast and light task that does not do heavy computations.- Returns:
- a Schedulerfor fast and light tasks
 
- 
getInstanceHeavypublic static io.reactivex.rxjava3.core.Scheduler getInstanceHeavy()Use thisSchedulerfor slow and heavy task that does do longer computations.- Returns:
- a Schedulerfor slow and heavy tasks
 
- 
shutdownShutdown the two schedulers.This operation cannot be undone. After performing this operation, no new task can be submitted! 
 
-