libUPnP
1.6.17
|
A thread pool similar to the thread pool in the UPnP SDK. More...
#include <ThreadPool.h>
Data Fields | |
ithread_mutex_t | mutex |
ithread_cond_t | condition |
ithread_cond_t | start_and_shutdown |
int | lastJobId |
int | shutdown |
int | totalThreads |
int | pendingWorkerThreadStart |
int | busyThreads |
int | persistentThreads |
FreeList | jobFreeList |
LinkedList | lowJobQ |
LinkedList | medJobQ |
LinkedList | highJobQ |
ThreadPoolJob * | persistentJob |
ThreadPoolAttr | attr |
ThreadPoolStats | stats |
A thread pool similar to the thread pool in the UPnP SDK.
Allows jobs to be scheduled for running by threads in a thread pool. The thread pool is initialized with a minimum and maximum thread number as well as a max idle time and a jobs per thread ratio. If a worker thread waits the whole max idle time without receiving a job and the thread pool currently has more threads running than the minimum then the worker thread will exit. If when scheduling a job the current job to thread ratio becomes greater than the set ratio and the thread pool currently has less than the maximum threads then a new thread will be created.
thread pool attributes
Referenced by AddWorker(), BumpPriority(), CreateWorker(), ThreadPoolAdd(), ThreadPoolAddPersistent(), ThreadPoolGetAttr(), ThreadPoolInit(), ThreadPoolSetAttr(), and WorkerThread().
number of threads that are currently executing jobs
Referenced by AddWorker(), ThreadPoolInit(), and WorkerThread().
ithread_cond_t THREADPOOL::condition |
Condition variable to signal Q.
Referenced by ThreadPoolAdd(), ThreadPoolAddPersistent(), ThreadPoolInit(), ThreadPoolSetAttr(), ThreadPoolShutdown(), and WorkerThread().
high priority job Q
Referenced by AddWorker(), BumpPriority(), ThreadPoolAdd(), ThreadPoolInit(), ThreadPoolRemove(), ThreadPoolShutdown(), and WorkerThread().
free list of jobs
Referenced by CreateThreadPoolJob(), FreeThreadPoolJob(), ThreadPoolInit(), and ThreadPoolShutdown().
ids for jobs
Referenced by ThreadPoolAdd(), ThreadPoolAddPersistent(), and ThreadPoolInit().
low priority job Q
Referenced by AddWorker(), BumpPriority(), ThreadPoolAdd(), ThreadPoolInit(), ThreadPoolRemove(), ThreadPoolShutdown(), and WorkerThread().
med priority job Q
Referenced by AddWorker(), BumpPriority(), ThreadPoolAdd(), ThreadPoolInit(), ThreadPoolRemove(), ThreadPoolShutdown(), and WorkerThread().
ithread_mutex_t THREADPOOL::mutex |
Mutex to protect job qs.
Referenced by CreateWorker(), ThreadPoolAdd(), ThreadPoolAddPersistent(), ThreadPoolGetAttr(), ThreadPoolInit(), ThreadPoolRemove(), ThreadPoolSetAttr(), ThreadPoolShutdown(), and WorkerThread().
flag that's set when waiting for a new worker thread to start
Referenced by CreateWorker(), ThreadPoolInit(), and WorkerThread().
persistent job
Referenced by ThreadPoolAddPersistent(), ThreadPoolInit(), ThreadPoolRemove(), ThreadPoolShutdown(), and WorkerThread().
number of persistent threads
Referenced by AddWorker(), ThreadPoolAddPersistent(), ThreadPoolInit(), and WorkerThread().
whether or not we are shutting down
Referenced by ThreadPoolGetAttr(), ThreadPoolInit(), ThreadPoolShutdown(), and WorkerThread().
ithread_cond_t THREADPOOL::start_and_shutdown |
Condition variable for start and stop.
Referenced by CreateWorker(), ThreadPoolAddPersistent(), ThreadPoolInit(), ThreadPoolShutdown(), and WorkerThread().
statistics
Referenced by CreateWorker(), ThreadPoolInit(), and WorkerThread().
total number of threads
Referenced by AddWorker(), CreateWorker(), ThreadPoolAddPersistent(), ThreadPoolInit(), ThreadPoolSetAttr(), ThreadPoolShutdown(), and WorkerThread().