summaryrefslogtreecommitdiffstats
path: root/Source/cmWorkerPool.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Introduce memory management helper: cm_memory.hxxMarc Chevrier2019-07-141-0/+2
|
* cmWorkerPool: Factor our worker thread class (internals)Sebastian Holtermann2019-04-241-120/+106
| | | | | | This moves the `cmWorkerPoolInternal::WorkerT` class to `cmWorkerPoolWorker` and changes the thread start interface to make it independent of the `cmWorkerPoolInternal` type.
* cmWorkerPool: Set worker thread count separately to Process()Sebastian Holtermann2019-04-241-15/+22
| | | | | | | Don't pass the desired worker thread count to the `cmWorkerPool::Process()` method but set it separately with the new `cmWorkerPool::SetThreadCount` method. This allows calling `cmWorkerPool::Process()` repeatedly without having to pass the thread count every time.
* Autogen: Factor out concurrency framework to cmWorkerPool classSebastian Holtermann2019-04-151-0/+770
This factors out the concurrency framework in `cmQtAutoGeneratorMocUic` to a dedicated class `cmWorkerPool` which might be reused in other places. `cmWorkerPool` supports fence jobs that require that - all other jobs before in the queue have been processed before the fence job processing gets started, - no jobs later in the queue will be processed before the fence job processing has been completed. Fence jobs are needed where the completion of all previous jobs in the queue is a requirement for further processing. E.g. in `cmQtAutoGeneratorMocUic` the generation of `mocs_compilation.cpp` requires that all previous source file parse jobs have been completed.