Package

monix.execution

schedulers

Permalink

package schedulers

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. schedulers
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. final class AsyncScheduler extends ReferenceScheduler with BatchingScheduler

    Permalink

    An AsyncScheduler schedules tasks to be executed asynchronously, either now or in the future, by means of Javascript's setTimeout.

  2. trait BatchingScheduler extends Scheduler

    Permalink

    Adds trampoline execution capabilities to schedulers, when inherited.

    Adds trampoline execution capabilities to schedulers, when inherited.

    When it receives TrampolinedRunnable instances, it switches to a trampolined mode where all incoming TrampolinedRunnable are executed on the current thread.

    This is useful for light-weight callbacks. The idea is borrowed from the implementation of scala.concurrent.Future. Currently used as an optimization by Task in processing its internal callbacks.

  3. final class ExecuteMacros extends InlineMacros with HygieneUtilMacros

    Permalink

    Macros enabling extension methods for Scheduler meant for executing runnables.

    Macros enabling extension methods for Scheduler meant for executing runnables.

    See:

    NOTE: these macros are only defined for Scala < 2.12, because in Scala 2.12 we simply rely on its SAM support.

  4. trait ReferenceScheduler extends Scheduler

    Permalink

    Helper for building a Scheduler.

    Helper for building a Scheduler.

    You can inherit from this class and provided a correct scheduleOnce you'll get Scheduler.scheduleWithFixedDelay and Scheduler.scheduleAtFixedRate for free.

  5. trait SchedulerService extends Scheduler

    Permalink

    A Scheduler type that provides methods for managing termination.

    A Scheduler type that provides methods for managing termination.

    A SchedulerService can be shut down, which will cause it to reject new tasks. The shutdown method allows previously submitted tasks to execute before terminating. The awaitTermination method allows waiting on all active tasks to finish.

    Upon termination, an executor has no tasks actively executing, no tasks awaiting execution, and no new tasks can be submitted. An unused SchedulerService should be shut down to allow reclamation of its resources.

  6. final case class StartAsyncBatchRunnable(start: TrampolinedRunnable, s: Scheduler) extends Runnable with Serializable with Product

    Permalink

    Forces a real asynchronous boundary before executing the given TrampolinedRunnable.

    Forces a real asynchronous boundary before executing the given TrampolinedRunnable.

    Sometimes you want to execute multiple TrampolinedRunnable instances as a batch, with the functionality provided by schedulers implementing BatchingScheduler, however you might need the very first execution to force an asynchronous boundary.

    start

    is the TrampolinedRunnable instance that will get executed and that is supposed to trigger the execution of other trampolined runnables

    s

    is the scheduler that gets used for execution.

  7. final class TestScheduler extends ReferenceScheduler with BatchingScheduler

    Permalink

    A scheduler meant for testing purposes.

  8. final class TrampolineExecutionContext extends ExecutionContext

    Permalink

    A scala.concurrentExecutionContext implementation that executes runnables immediately, on the current thread, by means of a trampoline implementation.

    A scala.concurrentExecutionContext implementation that executes runnables immediately, on the current thread, by means of a trampoline implementation.

    Can be used in some cases to keep the asynchronous execution on the current thread, as an optimization, but be warned, you have to know what you're doing.

    The TrampolineExecutionContext keeps a reference to another underlying context, to which it defers for:

    • reporting errors
    • deferring the rest of the queue in problematic situations

    Deferring the rest of the queue happens:

    • in case we have a runnable throwing an exception, the rest of the tasks get re-scheduled for execution by using the underlying context
    • in case we have a runnable triggering a Scala blocking context, the rest of the tasks get re-scheduled for execution on the underlying context to prevent any deadlocks

    Thus this implementation is compatible with the scala.concurrent.BlockContext, detecting blocking blocks and reacting by forking the rest of the queue to prevent deadlocks.

  9. final class TrampolineScheduler extends Scheduler

    Permalink

    A Scheduler implementation that executes runnables immediately, on the current thread, by means of a trampoline implementation.

    A Scheduler implementation that executes runnables immediately, on the current thread, by means of a trampoline implementation.

    Can be used in some cases to keep the asynchronous execution on the current thread, as an optimization, but be warned, you have to know what you're doing.

    The TrampolineScheduler keeps a reference to another underlying scheduler, to which it defers for:

    • reporting errors
    • time-delayed execution
    • deferring the rest of the queue in problematic situations

    Deferring the rest of the queue happens:

    • in case we have a runnable throwing an exception, the rest of the tasks get re-scheduled for execution by using the underlying scheduler
    • in case we have a runnable triggering a Scala blocking context, the rest of the tasks get re-scheduled for execution on the underlying scheduler to prevent any deadlocks

    Thus this implementation is compatible with the scala.concurrent.BlockContext, detecting blocking blocks and reacting by forking the rest of the queue to prevent deadlocks.

  10. abstract class TrampolinedRunnable extends Runnable with OnCompleteRunnable

    Permalink

    A marker for callbacks that can be batched and executed locally (on the current thread) by means of a trampoline (if the execution context / scheduler allows it).

    A marker for callbacks that can be batched and executed locally (on the current thread) by means of a trampoline (if the execution context / scheduler allows it).

    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.

  11. type ExecutionModel = execution.ExecutionModel

    Permalink

    Deprecated.

    Deprecated. Moved to monix.execution.ExecutionModel.

    Annotations
    @deprecated
    Deprecated

    (Since version 2.1.3) Moved to monix.execution.ExecutionModel

  12. type LocalBatchingExecutor = BatchingScheduler

    Permalink

    Deprecated.

    Deprecated. Renamed to BatchingScheduler.

    Annotations
    @deprecated
    Deprecated

    (Since version 2.1.0) Renamed to BatchingScheduler

  13. type LocalRunnable = TrampolinedRunnable

    Permalink

    Deprecated.

    Deprecated. Renamed to TrampolinedRunnable.

    Annotations
    @deprecated
    Deprecated

    (Since version 2.1.0) Renamed to TrampolinedRunnable

Value Members

  1. object AsyncScheduler extends Serializable

    Permalink
  2. object ReferenceScheduler extends Serializable

    Permalink
  3. object SchedulerService extends Serializable

    Permalink
  4. object TestScheduler extends Serializable

    Permalink
  5. object TrampolineExecutionContext

    Permalink
  6. object TrampolineScheduler extends Serializable

    Permalink

Deprecated Value Members

  1. object ExecutionModel extends Serializable

    Permalink

    Deprecated.

    Deprecated. Moved to monix.execution.ExecutionModel.

    Annotations
    @deprecated
    Deprecated

    (Since version 2.1.3) Moved to monix.execution.ExecutionModel

Inherited from AnyRef

Inherited from Any

Ungrouped