trait ConcurrentTestContext extends ExecutionContext with ScheduledExecutionContext
A context for testing concurrent code that provides: 1) an ExecutionContext that keeps track of the number of active and completed Runnables 2) a Timer for tracking elapsed duration since start of test 3) a SerializationSchedule for detecting order of execution of events 4) a precision delay function that accumulates any delay error
- Alphabetic
- By Inheritance
- ConcurrentTestContext
- ScheduledExecutionContext
- ExecutionContext
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
activeExecutionCount: Int
- returns
the current number of active Runnables and scheduled tasks being processed
-
abstract
def
delay(delay_ns: Long): Unit
precisely delay for a period of time in nanoseconds.
precisely delay for a period of time in nanoseconds. If the elapsed time differs from the requested the delay, the error in delay is accumulated in delayError_ns
-
abstract
def
delayError_ns: Long
- returns
the accumulated delay error
-
abstract
def
execute(runnable: Runnable): Unit
- Definition Classes
- ExecutionContext
-
abstract
def
reportFailure(cause: Throwable): Unit
Report a failure.
Report a failure. Used to report failures during periodic tasks
- Definition Classes
- ScheduledExecutionContext
-
implicit abstract
def
sched: SerializationSchedule[String]
- returns
the SerializationSchedule for the context
-
abstract
def
schedule[A](delay: FiniteDuration)(f: ⇒ A): DelayedFuture[A]
Create a DelayedFuture that executes the supplied function after the given delay
Create a DelayedFuture that executes the supplied function after the given delay
- delay
the time from now to delay execution
- f
the function to execute
- returns
a DelayedFuture that can be used to extract result
- Definition Classes
- ScheduledExecutionContext
- Exceptions thrown
java.util.concurrent.RejectedExecutionException
if the task cannot be scheduled for execution
-
abstract
def
scheduleAtFixedRate[U](initialDelay: FiniteDuration, period: FiniteDuration, paused: Boolean = false)(task: () ⇒ U): PeriodicTask
Creates a PeriodicTask that executes first after the given initial delay, and subsequently with the given period.
Creates a PeriodicTask that executes first after the given initial delay, and subsequently with the given period. PeriodicTask may stopped using the cancel method. If a failure occurs while processing the task, the task is automatically cancelled. If any execution of this task takes longer than its period, then subsequent executions may start late, but will not concurrently execute.
- initialDelay
the time to delay first execution
- period
the period between successive executions
- paused
TRUE to start the periodic task paused FALSE to start running
- task
the task to execute
- returns
a PeriodicTask
- Definition Classes
- ScheduledExecutionContext
- Exceptions thrown
java.lang.IllegalArgumentException
if period less than or equal to zerojava.util.concurrent.RejectedExecutionException
if the task cannot be scheduled for execution
-
abstract
def
scheduleCancellable[A](delay: FiniteDuration, fallback: ⇒ A)(f: ⇒ A): CancellableDelayedFuture[A]
Create a DelayedFuture that executes the supplied function after the given delay
Create a DelayedFuture that executes the supplied function after the given delay
- delay
the time from now to delay execution
- fallback
the value to return if the future is cancelled
- f
the function to execute
- returns
a DelayedFuture that can be used to extract result or cancel (only before it has been started)
- Definition Classes
- ScheduledExecutionContext
- Exceptions thrown
java.util.concurrent.RejectedExecutionException
if the task cannot be scheduled for execution
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
waitForActiveExecutionCount(_activeRunnableCount: Int): Unit
Sleep until the active execution count is equal to or less than the specified value
Deprecated Value Members
-
def
prepare(): ExecutionContext
- Definition Classes
- ExecutionContext
- Annotations
- @deprecated
- Deprecated
(Since version 2.12.0) preparation of ExecutionContexts will be removed