trait ForkingScheduler extends Scheduler
A scheduler that provides methods to fork the execution of
Future
computations and behaves similarly to a thread pool
- Alphabetic
- By Inheritance
- ForkingScheduler
- Scheduler
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def asExecutorService(): ExecutorService
Creates an
ExecutorService
wrapper for this forking scheduler.Creates an
ExecutorService
wrapper for this forking scheduler. The original forking scheduler remains unchanged and is used as the underlying implementation of the returned executor. If the executor service is shut down, only the wrapper is shut down and the original forking scheduler continues operating.- returns
the executor service wrapper
- abstract def blocking[T](f: => T)(implicit perm: CanAwait): T
Executes a function
f
in a blocking fashion.Executes a function
f
in a blocking fashion.Note: The permit may be removed in the future.
- Definition Classes
- Scheduler
- abstract def flush(): Unit
Flush the schedule.
Flush the schedule. Returns when there is no more work to do.
- Definition Classes
- Scheduler
- abstract def fork[T](executor: Executor)(f: => Future[T]): Future[T]
Forks the execution of a
Future
computation using the provided executor.Forks the execution of a
Future
computation using the provided executor.- T
the type of the
Future
computation- executor
the executor to be used to run the
Future
computation- f
the
Future
computation to be forked- returns
a
Future
to be satisfied when the forkedFuture
is completed
- abstract def fork[T](f: => Future[T]): Future[T]
Forks the execution of a
Future
computation even if the scheduler is overloaded.Forks the execution of a
Future
computation even if the scheduler is overloaded.- T
the type of the
Future
computation- f
the Future computation to be forked
- returns
a
Future
to be satisfied when the forkedFuture
is completed
- abstract def numDispatches: Long
The number of dispatches performed by this scheduler.
The number of dispatches performed by this scheduler.
- Definition Classes
- Scheduler
- abstract def redirectFuturePools(): Boolean
Indicates if
FuturePool
s should have their tasks redirected to the forking scheduler.Indicates if
FuturePool
s should have their tasks redirected to the forking scheduler.- returns
if enabled
- abstract def submit(r: Runnable): Unit
Schedule
r
to be run at some time in the future.Schedule
r
to be run at some time in the future.- Definition Classes
- Scheduler
- abstract def tryFork[T](f: => Future[T]): Future[Option[T]]
Tries to fork the execution of a
Future
computation and returns empty in case the scheduler is overloaded.Tries to fork the execution of a
Future
computation and returns empty in case the scheduler is overloaded.- T
the type of the
Future
computation- f
the Future computation to be forked
- returns
A
Future
withNone
if the scheduler is overloaded orSome[T]
if the task is successfully forked and executed.
- abstract def withMaxSyncConcurrency(concurrency: Int, maxWaiters: Int): ForkingScheduler
Creates a wrapper of this scheduler with a fixed max synchronous concurrency.
Creates a wrapper of this scheduler with a fixed max synchronous concurrency. The concurrency limit is applied to synchronous execution so tasks can be running in parallel if they're suspended at asynchronous boundaries but once they are scheduled for execution only
concurrency
tasks can be running in parallel.The original forking scheduler remains unchanged and is used as the underlying implementation of the returned scheduler.
- concurrency
the max concurrency
- maxWaiters
max number of pending tasks. When this limit is reached, the scheduler starts to return
RejectedExecutionException
s- returns
the wrapper with a fixed max concurrency
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 blockingTimeNanos: Long
Total time spent doing blocking operations, in nanoseconds.
Total time spent doing blocking operations, in nanoseconds.
This should only include time spent on threads where com.twitter.util.Awaitable.CanAwait.trackElapsedBlocking returns
true
.- returns
-1 if the Scheduler does not support tracking this.
- Definition Classes
- Scheduler
- Note
this does not include time spent doing blocking code outside of Scheduler.blocking. For example,
Future(someSlowSynchronousIO)
would not be accounted for here.
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- 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(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()