Module push_workers

Module push_workers 

Source

Modulesยง

priorisation
Gives flexibility to the algorithm to select from a set of available prioritization approaches. The threads are prioritized every time the master thread polls each individual thread. When polling, a vector prioritization is created as a vector. The threads are approached in sequence to pull away half the values in the queue. The first thread in the vector then is either a laggard or has the maximum tasks in the queue or other parameter.
thread_manager
Thread Manager encapsulates all active worker threads and information on free threads
thread_runner
ThreadRunner is responsible for running the tasks within queue belonging to each thread. It manages the process within a run function that is effectively a loop. The queue itself is a LimitedAccessQueue with the Secondary Accessor being available here
worker_controller
WorkerController is the core module and the brain responsible for raising the threads and managing the tasks across thread pools in an efficient manner. It follows a primary task distribution, followed by task redistribution across threads on the principle of stealing, followed by joining across threads to return.
worker_thread
Individual worker thread that is spawned by the workercontroller and thereon managed by the thread manager