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::size_t | GetQueueSize (const TaskProcessor &task_processor) noexcept |
| | Get approximate count of ready-to-run tasks on the task_processor
|
| |
|
std::size_t | GetWorkerCount (const TaskProcessor &task_processor) noexcept |
| | Get the number of worker threads in task_processor.
|
| |
| 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 Function, typename... Args> |
| auto | AsyncNoSpan (TaskProcessor &task_processor, Function &&f, Args &&... args) |
| | Runs an asynchronous function call using the specified task processor.
|
| |
| template<typename Function, typename... Args> |
| auto | SharedAsyncNoSpan (TaskProcessor &task_processor, Function &&f, Args &&... args) |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| template<typename Function, typename... Args> |
| auto | AsyncNoSpan (TaskProcessor &task_processor, Deadline deadline, Function &&f, Args &&... args) |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| template<typename Function, typename... Args> |
| auto | SharedAsyncNoSpan (TaskProcessor &task_processor, Deadline deadline, Function &&f, Args &&... args) |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| template<typename Function, typename... Args> |
| auto | AsyncNoSpan (Function &&f, Args &&... args) |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| template<typename Function, typename... Args> |
| auto | SharedAsyncNoSpan (Function &&f, Args &&... args) |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| template<typename Function, typename... Args> |
| auto | AsyncNoSpan (Deadline deadline, Function &&f, Args &&... args) |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| template<typename Function, typename... Args> |
| auto | SharedAsyncNoSpan (Deadline deadline, Function &&f, Args &&... args) |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| template<typename Function, typename... Args> |
| auto | CriticalAsyncNoSpan (TaskProcessor &task_processor, Function &&f, Args &&... args) |
| |
| template<typename Function, typename... Args> |
| auto | SharedCriticalAsyncNoSpan (TaskProcessor &task_processor, Function &&f, Args &&... args) |
| |
| template<typename Function, typename... Args> |
| auto | CriticalAsyncNoSpan (Function &&f, Args &&... args) |
| |
| template<typename Function, typename... Args> |
| auto | SharedCriticalAsyncNoSpan (Function &&f, Args &&... args) |
| |
| template<typename Function, typename... Args> |
| auto | CriticalAsyncNoSpan (Deadline deadline, Function &&f, Args &&... args) |
| |
| void | DetachUnscopedUnsafe (Task &&task) |
| | Detaches task, allowing it to continue execution out of scope; memory safety is much better with concurrent::BackgroundTaskStorage.
|
| |
|
std::string_view | ToString (TaskCancellationReason reason) noexcept |
| | Returns a string representation of a cancellation reason.
|
| |
| 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> |
| 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) |
| |
| void | RunStandalone (std::size_t worker_threads, const TaskProcessorPoolsConfig &config, utils::function_ref< void()> payload) |
| |
|
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) |
| |
|
TaskQueueType | Parse (const yaml_config::YamlConfig &value, formats::parse::To< TaskQueueType >) |
| |
| 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) |
| |