mrdocs::ExecutorGroup

A set of execution agents for performing concurrent work.

Synopsis

template<class Agent>
class ExecutorGroup
    : public ExecutorGroupBase

Base Classes

Name

Description

ExecutorGroupBase

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

Type Aliases

Name

Description

arg_t

Argument wrapper propagated from ThreadPool.

Member Functions

Name

Description

ExecutorGroup [constructor]

Construct a new executor group bound to a thread pool.

async

Submit work to be executed.

emplace

Construct a new agent in the group.

wait

Block until all work has completed.

Protected Types

Name

Description

AnyAgent

Type‐erased agent holder used by the base class.

Protected Member Functions

Name

Description

post

Queue work to run on the group agents.

run

Execute queued work until empty.

Protected Data Members

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.

Created with MrDocs