package schedulers
- Alphabetic
- Public
- All
Type Members
-
final
class
AsyncScheduler
extends ReferenceScheduler with LocalBatchingExecutor
An
AsyncScheduler
schedules tasks to happen in the future with the givenScheduledExecutorService
and the tasks themselves are executed on the givenExecutionContext
. -
sealed abstract
class
ExecutionModel
extends AnyRef
Specification for run-loops, imposed by the
Scheduler
.Specification for run-loops, imposed by the
Scheduler
.When executing tasks, a run-loop can always execute tasks asynchronously (by forking logical threads), or it can always execute them synchronously (same thread and call-stack, by using an internal trampoline), or it can do a mixed mode that executes tasks in batches before forking.
The specification is considered a recommendation for how run loops should behave, but ultimately it's up to the client to choose the best execution model. This can be related to recursive loops or to events pushed into consumers.
-
final
class
ExecutorScheduler
extends ReferenceScheduler with LocalBatchingExecutor
An ExecutorScheduler is for building a Scheduler out of a
ScheduledExecutorService
. -
trait
LocalBatchingExecutor
extends Scheduler
Adds trampoline execution capabilities to schedulers, when inherited.
Adds trampoline execution capabilities to schedulers, when inherited.
When it receives LocalRunnable instances, it switches to a trampolined mode where all incoming LocalRunnables are executed on the current thread.
This is useful for light-weight callbacks. The idea is borrowed from the implementation of
scala.concurrent.Future
, except that in this case we don't care about a blocking context, the implementation being more light-weight.Currently used as an optimization by
Task
in processing its internal callbacks. -
abstract
class
LocalRunnable
extends Runnable with OnCompleteRunnable
A marker for callbacks that can be batched and executed locally.
A marker for callbacks that can be batched and executed locally.
Idea was taken from the
scala.concurrent.Future
implementation. Credit should be given where due.DO NOT use unless you know what you're doing.
-
final
class
TestScheduler
extends ReferenceScheduler with LocalBatchingExecutor
A scheduler meant for testing purposes.
Value Members
- object AsyncScheduler extends Serializable
- object ExecutionModel
- object ExecutorScheduler extends Serializable
- object TestScheduler extends Serializable