|
| | MultiLoop (size_t thread_num=4U) |
| | Constructs a MultiLoop with the default kNormalType queue and thread_num workers. More...
|
| |
| | MultiLoop (size_t thread_num, Type type) |
| | Constructs a MultiLoop with a specific queue type. More...
|
| |
| | ~MultiLoop () override |
| | Defaulted destructor. More...
|
| |
| bool | is_in_same_thread () const override |
| | Reports whether the calling thread belongs to this loop. More...
|
| |
| bool | wait_for_idle (int ms=Timer::kInfinite, bool check=true) override |
| | Waits until both the dispatcher queue and the worker pool reach idle. More...
|
| |
| | MessageLoop () |
| | Constructs a loop with the default kNormalType queue. More...
|
| |
| | MessageLoop (Type type) |
| | Constructs a loop with the given queue type. More...
|
| |
| virtual | ~MessageLoop () |
| | Destructor; requests quit and joins the dispatcher thread if needed. More...
|
| |
| void | set_name (const std::string &name) |
| | Sets a human-readable name visible to profiling tools. More...
|
| |
| const std::string & | get_name () const |
| | Returns the loop name set via set_name. More...
|
| |
| Type | get_type () const |
| | Returns the queue type this loop was constructed with. More...
|
| |
| Strategy | get_strategy () const |
| | Returns the active back-pressure strategy. More...
|
| |
| void | set_strategy (Strategy strategy) |
| | Replaces the back-pressure strategy. More...
|
| |
| void | register_begin_handler (Callback &&callback) |
| | Registers a callback fired once at loop thread startup. More...
|
| |
| void | register_end_handler (Callback &&callback) |
| | Registers a callback fired once when the loop thread exits. More...
|
| |
| void | register_idle_handler (Callback &&callback) |
| | Registers a callback fired every time the queue becomes empty. More...
|
| |
| bool | run () |
| | Runs the loop on the calling thread until quit is requested. More...
|
| |
| bool | async_run () |
| | Starts the loop on a new background thread. More...
|
| |
| bool | spin () |
| | Alias of run blocking the calling thread. More...
|
| |
| bool | spin_once (bool block=true) |
| | Processes one batch of pending tasks and timers on the calling thread. More...
|
| |
| bool | quit (bool force=false) |
| | Requests the loop to exit. More...
|
| |
| bool | wait_for_quit (int ms=Timer::kInfinite, bool check=true) |
| | Waits until the loop has fully exited. More...
|
| |
| bool | post_task (Callback &&callback) |
| | Posts a task for execution on the loop thread. More...
|
| |
| TaskHandle | post_task_handle (Callback &&callback, const PostTaskOptions &options={}) |
| | Tracked variant of post_task returning a TaskHandle. More...
|
| |
| bool | post_task_with_priority (Callback &&callback, uint16_t priority) |
| | Posts a task with an explicit priority on a kPriorityType loop. More...
|
| |
| TaskHandle | post_task_with_priority_handle (Callback &&callback, uint16_t priority, const PostTaskOptions &options={}) |
| | Tracked variant of post_task_with_priority returning a TaskHandle. More...
|
| |
| template<typename CallbackT , typename = std::enable_if_t<!std::is_convertible_v<CallbackT, Schedule::RetCallback>>> |
| Schedule::Status | exec_task (const Schedule::Config &config, CallbackT &&callback) |
| | Schedules a void-returning callable and returns a chainable Schedule::Status. More...
|
| |
| template<typename CallbackT , typename = std::enable_if_t<std::is_convertible_v<CallbackT, Schedule::RetCallback>>> |
| Schedule::RetStatus | exec_task (const Schedule::Config &config, CallbackT &&callback) |
| | Schedules a bool-returning callable and returns a chainable Schedule::RetStatus. More...
|
| |
| bool | wakeup () |
| | Wakes the loop thread if it is suspended in its idle wait. More...
|
| |
| void | reset_lockfree_capacity () |
| | Recreates the lock-free queue, clearing all queued tasks and counters. More...
|
| |
| bool | is_running () const |
| | Reports whether the loop is currently running. More...
|
| |
| bool | is_ready_to_quit () const |
| | Reports whether quit has been requested and the loop is winding down. More...
|
| |
| bool | is_busy () const |
| | Reports whether the loop is currently executing a task. More...
|
| |
| size_t | get_task_count () const |
| | Returns the current pending task count. More...
|
| |
| virtual size_t | get_max_task_count () const |
| | Returns the maximum queue depth. More...
|
| |
| virtual size_t | get_max_timer_count () const |
| | Returns the maximum number of timers that can be attached. More...
|
| |
| virtual uint32_t | get_max_elapsed_time () const |
| | Returns the maximum allowed task execution time in milliseconds. More...
|
| |
| std::shared_ptr< AliveState > | get_alive_state () const |
| | Returns the shared lifetime flag used by cross-thread bridges. More...
|
| |
| template<class FunctionT , class... ArgsT, typename ResultT = std::invoke_result_t<FunctionT, ArgsT...>> |
| std::future< ResultT > | invoke_task (FunctionT &&function, ArgsT &&... args) |
| | Dispatches a callable to the loop thread and returns a std::future for the result. More...
|
| |
| template<class FunctionT , class... ArgsT, typename ResultT = std::invoke_result_t<FunctionT, ArgsT...>> |
| std::future< ResultT > | invoke_task_with_priority (FunctionT &&function, uint16_t priority, ArgsT &&... args) |
| | Priority variant of invoke_task; requires a kPriorityType loop. More...
|
| |
MessageLoop subclass that forwards every task to an internal ThreadPool.
Inherits every posting API from MessageLoop. The dispatcher pulls tasks from the queue in FIFO order; the worker pool runs them concurrently so execution order is not guaranteed even though enqueue order is.