Asynchronous engine primitives.
|
class | CancellableSemaphore |
| Class that allows up to max_simultaneous_locks concurrent accesses to the critical section. It honours task cancellation, unlike Semaphore. More...
|
|
class | ConditionVariable |
| std::condition_variable replacement for asynchronous tasks More...
|
|
class | Deadline |
| Internal representation of a deadline time point. More...
|
|
class | Future |
| std::future replacement for asynchronous tasks that works in pair with engine::Promise More...
|
|
class | Mutex |
| std::mutex replacement for asynchronous tasks. More...
|
|
class | Promise |
| std::promise replacement for asynchronous tasks that works in pair with engine::Future More...
|
|
class | Promise< void > |
|
class | Semaphore |
| Class that allows up to max_simultaneous_locks concurrent accesses to the critical section. It ignores task cancellation, unlike CancellableSemaphore. More...
|
|
class | SemaphoreLock |
| A replacement for std::shared_lock that accepts Deadline arguments. More...
|
|
class | SemaphoreLockCancelledError |
| Thrown by engine::CancellableSemaphore on current task cancellation. More...
|
|
class | SharedMutex |
| std::shared_mutex replacement for asynchronous tasks. More...
|
|
class | SharedTask |
| Asynchronous task that has a shared ownership of the payload. More...
|
|
class | SharedTaskWithResult |
| Asynchronous task with result that has a shared ownership of payload. More...
|
|
class | SingleConsumerEvent |
| A multiple-producers, single-consumer event. More...
|
|
class | SingleThreadedTaskProcessorsPool |
|
class | SingleUseEvent |
| A single-producer, single-consumer event. More...
|
|
class | SingleWaitingTaskMutex |
| Lighter version of Mutex with not more than 1 waiting task. More...
|
|
class | Task |
| Asynchronous task that has a unique ownership of the payload. More...
|
|
class | TaskBase |
| Base class for all the asynchronous tasks (engine::Task, engine::SharedTask, engine::SharedTaskWithResult, engine::TaskWithResult, dist_lock::DistLockedTask, ...). More...
|
|
class | TaskCancellationBlocker |
|
class | TaskCancellationToken |
| Cancellation token to given task object. More...
|
|
class | TaskCancelledException |
| Thrown if a TaskWithResult , for which we were waiting, got cancelled. More...
|
|
class | TaskInheritedVariable |
| TaskInheritedVariable is a per-coroutine variable of arbitrary type. More...
|
|
class | TaskLocalVariable |
| TaskLocalVariable is a per-coroutine variable of arbitrary type. More...
|
|
struct | TaskProcessorPoolsConfig |
| A lightweight TaskProcessor config for engine::RunStandalone. More...
|
|
class | TaskProcessorsLoadMonitor |
| Component to monitor CPU usage for every TaskProcessor present in the service, and dump per-thread stats into metrics. More...
|
|
class | TaskWithResult |
|
class | UnreachableSemaphoreLockError |
|
class | WaitInterruptedException |
|
|
std::string_view | ToString (TaskCancellationReason reason) noexcept |
| Returns a string representation of a cancellation reason.
|
|
template<typename Function , typename... Args> |
auto | AsyncNoSpan (TaskProcessor &task_processor, Function &&f, Args &&... args) |
| Runs an asynchronous function call using specified task processor.
|
|
template<typename Function , typename... Args> |
auto | SharedAsyncNoSpan (TaskProcessor &task_processor, Function &&f, Args &&... args) |
| Runs an asynchronous function call using specified task processor.
|
|
template<typename Function , typename... Args> |
auto | AsyncNoSpan (TaskProcessor &task_processor, Deadline deadline, Function &&f, Args &&... args) |
|
template<typename Function , typename... Args> |
auto | SharedAsyncNoSpan (TaskProcessor &task_processor, Deadline deadline, Function &&f, Args &&... args) |
|
template<typename Function , typename... Args> |
auto | AsyncNoSpan (Function &&f, Args &&... args) |
| Runs an asynchronous function call using task processor of the caller.
|
|
template<typename Function , typename... Args> |
auto | SharedAsyncNoSpan (Function &&f, Args &&... args) |
| Runs an asynchronous function call using task processor of the caller.
|
|
template<typename Function , typename... Args> |
auto | AsyncNoSpan (Deadline deadline, Function &&f, Args &&... args) |
|
template<typename Function , typename... Args> |
auto | SharedAsyncNoSpan (Deadline deadline, Function &&f, Args &&... args) |
|
template<typename Function , typename... Args> |
auto | CriticalAsyncNoSpan (TaskProcessor &task_processor, Function &&f, Args &&... args) |
| Runs an asynchronous function call that will start regardless of cancellations using specified task processor.
|
|
template<typename Function , typename... Args> |
auto | SharedCriticalAsyncNoSpan (TaskProcessor &task_processor, Function &&f, Args &&... args) |
| Runs an asynchronous function call that will start regardless of cancellations using specified task processor.
|
|
template<typename Function , typename... Args> |
auto | CriticalAsyncNoSpan (Function &&f, Args &&... args) |
| Runs an asynchronous function call that will start regardless of cancellations using task processor of the caller.
|
|
template<typename Function , typename... Args> |
auto | SharedCriticalAsyncNoSpan (Function &&f, Args &&... args) |
| Runs an asynchronous function call that will start regardless of cancellations using task processor of the caller.
|
|
template<typename Function , typename... Args> |
auto | CriticalAsyncNoSpan (Deadline deadline, Function &&f, Args &&... args) |
| Runs an asynchronous function call that will start regardless of cancellations, using task processor of the caller, with deadline.
|
|
template<typename... Tasks> |
auto | GetAll (Tasks &... tasks) |
| Waits for the successful completion of all of the specified tasks or the cancellation of the caller.
|
|
void | RunStandalone (utils::function_ref< void()> payload) |
| Runs a payload in a temporary coroutine engine instance.
|
|
void | RunStandalone (std::size_t worker_threads, utils::function_ref< void()> payload) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
|
void | RunStandalone (std::size_t worker_threads, const TaskProcessorPoolsConfig &config, utils::function_ref< void()> payload) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
|
void | Yield () |
| Suspends execution for a brief period of time, possibly allowing other tasks to execute.
|
|
template<typename Rep , typename Period > |
void | InterruptibleSleepFor (const std::chrono::duration< Rep, Period > &duration) |
|
template<typename Clock , typename Duration > |
void | InterruptibleSleepUntil (const std::chrono::time_point< Clock, Duration > &time_point) |
|
template<typename Rep , typename Period > |
void | SleepFor (const std::chrono::duration< Rep, Period > &duration) |
|
template<typename Clock , typename Duration > |
void | SleepUntil (const std::chrono::time_point< Clock, Duration > &time_point) |
|
void | RegisterThreadStartedHook (std::function< void()>) |
| Register a function that runs on all threads on task processor creation. Used for pre-initializing thread_local variables with heavy constructors (constructor that does blocking system calls, file access, ...):
|
|
template<typename... Tasks> |
void | WaitAllChecked (Tasks &... tasks) |
| Waits for the successful completion of all of the specified tasks or for the cancellation of the caller.
|
|
template<typename... Tasks, typename Rep , typename Period > |
FutureStatus | WaitAllCheckedFor (const std::chrono::duration< Rep, Period > &duration, Tasks &... tasks) |
|
template<typename... Tasks, typename Clock , typename Duration > |
FutureStatus | WaitAllCheckedUntil (const std::chrono::time_point< Clock, Duration > &until, Tasks &... tasks) |
|
template<typename... Tasks> |
FutureStatus | WaitAllCheckedUntil (Deadline deadline, Tasks &... tasks) |
|
template<typename... Tasks> |
std::optional< std::size_t > | WaitAny (Tasks &... tasks) |
| Waits for the completion of any of the specified tasks or the cancellation of the caller.
|
|
template<typename... Tasks, typename Rep , typename Period > |
std::optional< std::size_t > | WaitAnyFor (const std::chrono::duration< Rep, Period > &duration, Tasks &... tasks) |
|
template<typename... Tasks, typename Clock , typename Duration > |
std::optional< std::size_t > | WaitAnyUntil (const std::chrono::time_point< Clock, Duration > &until, Tasks &... tasks) |
|
template<typename... Tasks> |
std::optional< std::size_t > | WaitAnyUntil (Deadline, Tasks &... tasks) |
|