#include <cpl_worker_thread_pool.h>
CPLWorkerThreadPool::CPLWorkerThreadPool |
( |
| ) |
|
Instantiate a new pool of worker threads.
The pool is in an uninitialized state after this call. The Setup() method must be called.
CPLWorkerThreadPool::~CPLWorkerThreadPool |
( |
| ) |
|
Destroys a pool of worker threads.
Any still pending job will be completed before the destructor returns.
int CPLWorkerThreadPool::GetThreadCount |
( |
| ) |
const |
|
inline |
Return the number of threads setup
bool CPLWorkerThreadPool::Setup |
( |
int |
nThreads, |
|
|
CPLThreadFunc |
pfnInitFunc, |
|
|
void ** |
pasInitData |
|
) |
| |
Setup the pool.
- Parameters
-
nThreads | Number of threads to launch |
pfnInitFunc | Initialization function to run in each thread. May be NULL |
pasInitData | Array of initialization data. Its length must be nThreads, or it should be NULL. |
- Returns
- true if initialization was successful.
bool CPLWorkerThreadPool::SubmitJob |
( |
CPLThreadFunc |
pfnFunc, |
|
|
void * |
pData |
|
) |
| |
Queue a new job.
- Parameters
-
pfnFunc | Function to run for the job. |
pData | User data to pass to the job function. |
- Returns
- true in case of success.
bool CPLWorkerThreadPool::SubmitJobs |
( |
CPLThreadFunc |
pfnFunc, |
|
|
const std::vector< void * > & |
apData |
|
) |
| |
Queue several jobs
- Parameters
-
pfnFunc | Function to run for the job. |
apData | User data instances to pass to the job function. |
- Returns
- true in case of success.
void CPLWorkerThreadPool::WaitCompletion |
( |
int |
nMaxRemainingJobs = 0 | ) |
|
Wait for completion of part or whole jobs.
- Parameters
-
nMaxRemainingJobs | Maximum number of pendings jobs that are allowed in the queue after this method has completed. Might be 0 to wait for all jobs. |
The documentation for this class was generated from the following files: