mrdocs::ExecutorGroupBase

Base class that owns a pool of execution agents and a shared work queue.

Synopsis

Declared in <mrdocs/Support/Concurrency/ExecutorGroup.hpp>

class ExecutorGroupBase;

Type Aliases

NameDescription
arg_t Argument wrapper propagated from ThreadPool.

Member Functions

NameDescription
ExecutorGroupBase [constructor]Move-construct from another group.
~ExecutorGroupBase [destructor]Destroy the executor group, waiting for outstanding work.
wait Block until all work has completed.

Protected Types

NameDescription
AnyAgent Type-erased agent holder used by the base class.

Protected Member Functions

NameDescription
ExecutorGroupBase [constructor]Construct with a backing thread pool.
post Queue work to run on the group agents.
run Execute queued work until empty.

Protected Data Members

NameDescription
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.

Derived Classes

NameDescription
ExecutorGroup A set of execution agents for performing concurrent work.