This module defines the Serial and Parallel classes that execute tasks to
complete a build. The Jobs class provides a higher level interface to start,
stop, and wait on jobs.
|
InterruptState
|
|
Jobs
An instance of this class initializes N jobs, and provides
methods for starting, stopping, and waiting on all N jobs.
|
|
Serial
This class is used to execute tasks in series, and is more efficient
than Parallel, but is only appropriate for non-parallel builds. Only
one instance of this class should be in existence at a time.
|
|
Worker
A worker thread waits on a task to be posted to its request queue,
dequeues the task, executes it, and posts a tuple including the task
and a boolean indicating whether the task executed successfully.
|
|
ThreadPool
This class is responsible for spawning and managing worker threads.
|
|
Parallel
This class is used to execute tasks in parallel, and is somewhat
less efficient than Serial, but is appropriate for parallel builds.
|