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 | 
|   | 
 | 
| 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) | 
|   | 
| 
std::string_view  | ToString (TaskCancellationReason reason) noexcept | 
|   | Returns a string representation of a cancellation reason. 
  | 
|   | 
| 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) | 
|   |