Public Types | |
|
typedef std::shared_ptr < ThreadPool > | shared |
Public Member Functions | |
| ThreadPool (size_t maximumWorkers=DefaultMaximumWorkers) | |
| ThreadPool (size_t maximumWorkers, size_t minimumWorkers, size_t spareWorkers=DefaultSpareWorkers) | |
| ThreadPool (Log::shared log, size_t maximumWorkers=DefaultMaximumWorkers) | |
| ThreadPool (Log::shared log, size_t maximumWorkers, size_t minimumWorkers, size_t spareWorkers=DefaultSpareWorkers) | |
| ThreadPool (const ThreadPool &other) | |
| void | schedule (Task::shared &task, int priority=0) |
| void | schedule (Task::shared &task, const std::chrono::system_clock::duration &delay, int priority=0) |
| void | schedule (Task::shared &task, const std::chrono::system_clock::time_point &time, int priority=0) |
| void | schedule (Task::shared &task, time_t sec, suseconds_t usec, int priority=0) |
| void | schedule (Task::shared &task, timeval &tv, int priority=0) |
| bool | reschedule (Task::shared &task, const std::chrono::system_clock::duration &delay, int priority=0, bool strict=false) |
| bool | reschedule (Task::shared &task, const std::chrono::system_clock::time_point &time, int priority=0, bool strict=false) |
| bool | reschedule (Task::shared &task, time_t sec, suseconds_t usec=0, int priority=0, bool strict=false) |
| bool | reschedule (Task::shared &task, timeval &tv, int priority=0, bool strict=false) |
| bool | unschedule (Task::shared &task, bool firstonly=true) |
| void | pause (bool on=true) |
| void | resume (void) |
| size_t | getCPUCount (void) |
| int | getCPUSetCount (void) |
| bool | addCPUAffinity (int cpu) |
| bool | addCPUAffinity (std::set< int > cpus) |
| bool | setCPUAffinity (cpu_set_t &cpuset) |
| bool | clearCPUAffinity (void) |
| bool | clearCPUAffinity (int cpu) |
| bool | clearCPUAffinity (std::set< int > cpus) |
| size_t | size (void) const |
| size_t | workers (void) const |
| size_t | active (void) const |
| bool | empty (void) const |
| void | clear (void) |
| Task::shared | next (void) |
| std::chrono::microseconds | duration (void) const |
| std::chrono::microseconds | max (void) const |
| bool | ready (void) const |
| bool | wait (void) |
| bool | wait (const std::chrono::system_clock::duration &delay) |
| bool | wait (const std::chrono::system_clock::time_point &time) |
| void | reserve (size_t capacity) |
| void | print (void) const |
Static Public Member Functions | |
| static ThreadPool::shared | shared_ptr (size_t maximumWorkers=DefaultMaximumWorkers) |
| static ThreadPool::shared | shared_ptr (size_t maximumWorkers, size_t minimumWorkers, size_t spareWorkers=DefaultSpareWorkers) |
| static ThreadPool::shared | shared_ptr (Log::shared log, size_t maximumWorkers=DefaultMaximumWorkers) |
| static ThreadPool::shared | shared_ptr (Log::shared log, size_t maximumWorkers, size_t minimumWorkers, size_t spareWorkers=DefaultSpareWorkers) |
Static Public Attributes | |
| static const size_t | DefaultMaximumWorkers = 0 |
| static const size_t | DefaultMinimumWorkers = 2 |
| static const size_t | DefaultSpareWorkers = 2 |
Protected Member Functions | |
| void | manager (void) |
| void | worker (void) |
| void | normalize (void) |
| void | createWorker (void) |
| bool | setThreadsAffinity (void) |
| bool | setThreadAffinity (pthread_t tid) |
Protected Attributes | |
| std::thread | managerTID |
| std::set< pthread_t > | tids |
| std::atomic< size_t > | threads |
| std::atomic< size_t > | creating |
| std::atomic< size_t > | actives |
| std::atomic< size_t > | overage |
| bool | shutdown |
| bool | paused |
| bool | allcpus |
| cpu_set_t | cpuset |
| std::mutex | heapMutex |
| std::mutex | tidsMutex |
| std::mutex | managerMutex |
| std::mutex | workerMutex |
| std::mutex | overageMutex |
| std::mutex | emptyMutex |
| std::condition_variable | managerCV |
| std::condition_variable | workerCV |
| std::condition_variable | emptyCV |
| size_t | maximum |
| size_t | minimum |
| size_t | spares |
Definition at line 31 of file ThreadPool.h.
1.6.1