An executor that supports timed scheduling. Like RxScheduler.
Declared in <folly/executors/ScheduledExecutor.h>
class ScheduledExecutor
: public virtual Executor
| Name | Description |
|---|---|
Executor | Schedules and runs asynchronous work. |
| Name | Description |
|---|---|
Duration | The duration type used for scheduling. |
KeepAlive | Alias for ExecutorKeepAlive, a safe pointer to an Executor. |
TimePoint | The time point type used for scheduling. |
| Name | Description |
|---|---|
~ScheduledExecutor [destructor] [virtual] | Destroys the scheduled executor. |
add [virtual] | Schedules a function to be executed as soon as possible. |
addWithPriority [virtual] | Enqueue a function with a given priority, where 0 is the medium priority This is up to the implementation to enforce |
getNumPriorities [virtual] | Returns the number of priority levels this executor supports. |
now [virtual] | Get this executor's notion of time. Must be threadsafe. |
schedule | schedule overloads |
scheduleAt [virtual] | Schedule a Func to be executed at time t, or as soon afterward as possible. Expect millisecond resolution at best. Must be threadsafe. |
| Name | Description |
|---|---|
getKeepAliveToken | getKeepAliveToken overloads |
invokeCatchingExns | Invokes f, logging and swallowing any exception it throws. |
| Name | Description |
|---|---|
HI_PRI | Highest schedulable priority. |
LO_PRI | Lowest schedulable priority. |
MID_PRI | Medium (default) schedulable priority. |
| Name | Description |
|---|---|
keepAliveAcquire [virtual] | Acquire a keep alive token. Should return false if keep-alive mechanism is not supported. |
keepAliveRelease [virtual] | Release a keep alive token previously acquired by keepAliveAcquire(). Will never be called if keepAliveAcquire() returns false. |
| Name | Description |
|---|---|
isKeepAliveDummy | Returns true if the KeepAlive is constructed from an executor that does not support the keep alive ref-counting functionality |
keepAliveAcquire | Acquires a keep-alive reference on executor. |
keepAliveRelease | Releases a keep-alive reference on executor. |
makeKeepAlive | Makes a counted (non-dummy, non-alias) keep-alive referring to executor. |
| Name | Description |
|---|---|
async_tracing::logFutureVia | Trace hook invoked when a Future is rescheduled onto an executor. |
async_tracing::logGetGlobalCPUExecutor | Trace hook invoked when the global CPU executor is retrieved. |
async_tracing::logGetImmutableCPUExecutor | Trace hook invoked when the immutable CPU executor is retrieved. |
async_tracing::logSemiFutureVia | Trace hook invoked when a SemiFuture is rescheduled onto an executor. |
async_tracing::logSetGlobalCPUExecutor | Trace hook invoked when the global CPU executor is set. |
| Name | Description |
|---|---|
EventBase | An event loop that drives asynchronous I/O and timers. |
ManualExecutor | A ManualExecutor only does work when you turn the crank, by calling run() or indirectly with makeProgress() or waitFor(). |
TimekeeperScheduledExecutor | This class turns a Executor into a ScheduledExecutor. |