folly::ScheduledExecutor

An executor that supports timed scheduling. Like RxScheduler.

Synopsis

Declared in <folly/executors/ScheduledExecutor.h>

class ScheduledExecutor
    : public virtual Executor

Base Classes

NameDescription
ExecutorSchedules and runs asynchronous work.

Type Aliases

NameDescription
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.

Member Functions

NameDescription
~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.

Static Member Functions

NameDescription
getKeepAliveToken getKeepAliveToken overloads
invokeCatchingExns Invokes f, logging and swallowing any exception it throws.

Static Data Members

NameDescription
HI_PRI Highest schedulable priority.
LO_PRI Lowest schedulable priority.
MID_PRI Medium (default) schedulable priority.

Protected Member Functions

NameDescription
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.

Protected Static Member Functions

NameDescription
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.

Non-Member Functions

NameDescription
async_tracing::logFutureViaTrace hook invoked when a Future is rescheduled onto an executor.
async_tracing::logGetGlobalCPUExecutorTrace hook invoked when the global CPU executor is retrieved.
async_tracing::logGetImmutableCPUExecutorTrace hook invoked when the immutable CPU executor is retrieved.
async_tracing::logSemiFutureViaTrace hook invoked when a SemiFuture is rescheduled onto an executor.
async_tracing::logSetGlobalCPUExecutorTrace hook invoked when the global CPU executor is set.

Derived Classes

NameDescription
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.