11#ifndef __BE_PROCESS_POSIXTHREADMANAGER_H__
12#define __BE_PROCESS_POSIXTHREADMANAGER_H__
24 class POSIXThreadWorkerController;
49 std::shared_ptr<WorkerController>
51 std::shared_ptr<Worker> worker);
72 bool communicate =
false);
95 std::shared_ptr<WorkerController> worker,
97 bool communicate =
false);
114 std::shared_ptr<WorkerController> workerController);
184 std::shared_ptr<Worker> worker);
205 bool communicate =
false);
An interface for intranode process management classes.
Manager implementation that starts Workers in POSIX threads.
std::shared_ptr< WorkerController > addWorker(std::shared_ptr< Worker > worker)
Adds a Worker to be managed by this Manager.
void startWorker(std::shared_ptr< WorkerController > worker, bool wait=true, bool communicate=false)
Start a Worker.
void startWorkers(bool wait=true, bool communicate=false)
Begin Worker's work.
void waitForWorkerExit()
Block until all Workers have exited.
void stopWorker(std::shared_ptr< WorkerController > workerController)
Ask Worker to exit.
~POSIXThreadManager()
~POSIXThreadManager destructor.
POSIXThreadManager()
POSIXThreadManager constructor.
Decorated Worker returned from a Process::POSIXThreadManager.
bool everWorked() const
Obtain whether or not this Worker has ever worked.
bool isWorking() const
Obtain whether or not Worker is working.
void reset()
Reuse the Worker.
~POSIXThreadWorkerController()
POSIXThreadWorkerController destructor.
Wrapper of a Worker returned from a Process::Manager.
This software was developed at the National Institute of Standards and Technology (NIST) by employees...