Base class that owns a pool of execution agents and a shared work queue.
Declared in <mrdocs/Support/Concurrency/ExecutorGroup.hpp>
class ExecutorGroupBase;
| Name | Description |
|---|---|
arg_t | Argument wrapper propagated from ThreadPool. |
| Name | Description |
|---|---|
ExecutorGroupBase [constructor] | Move-construct from another group. |
~ExecutorGroupBase [destructor] | Destroy the executor group, waiting for outstanding work. |
wait | Block until all work has completed. |
| Name | Description |
|---|---|
AnyAgent | Type-erased agent holder used by the base class. |
| Name | Description |
|---|---|
ExecutorGroupBase [constructor] | Construct with a backing thread pool. |
post | Queue work to run on the group agents. |
run | Execute queued work until empty. |
| Name | Description |
|---|---|
agents_ | Agents owned by the group. |
busy_ | Number of worker threads currently running. |
cv_ | Signals when a worker finishes so a waiter can re-check for idle. |
errors_ | Errors thrown by submitted work. |
mutex_ | Guards the work queue, agent list, and error set. |
threadPool_ | Pool that owns the worker threads. |
work_ | Pending work posted to the group. |
| Name | Description |
|---|---|
ExecutorGroup | A set of execution agents for performing concurrent work. |