A sequenced executor that never runs its tasks concurrently.
Declared in <folly/executors/SerializedExecutor.h>
class SerializedExecutor
: public SequencedExecutor
SerializedExecutor is a SequencedExecutor with the additional guarantee that no tasks added to the executor are run concurrently, even if their add()s were not sequenced.
| Name | Description |
|---|---|
SequencedExecutor | An executor that sequences tasks whose submissions were sequenced. |
| Name | Description |
|---|---|
KeepAlive | Alias for ExecutorKeepAlive, a safe pointer to an Executor. |
| Name | Description |
|---|---|
~SerializedExecutor [destructor] [virtual] | Destroys the executor. |
add [virtual] | Enqueue a function to be executed by this executor. This and all variants must be threadsafe. |
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. |
| 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 |
|---|---|
StrandExecutor | Executor that serialises work while delegating execution to a parent executor, sharing a StrandContext to serialise across executors. |