Go to the SVN repository for this file.
1 #ifndef UTIL___THREAD_POOL_CTRL__HPP 2 #define UTIL___THREAD_POOL_CTRL__HPP 89 unsigned intmin_threads);
Default ThreadPool controller based on Proportional-Integral-Derivative algorithm.
Abstract class for controlling the number of threads in pool.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
EEvent
Events that can happen with ThreadPool.
double GetChangePredictTime(void)
Get period of prediction of number of tasks in queue.
deque< SThreadPool_PID_ErrInfo > m_ErrHistory
History of changing of "error" value "error" - number of tasks per thread waiting in queue.
double GetTaskMaxQueuedTime(void)
Get maximum time that task can wait in queue for processing until new thread will be launched.
void SetChangePredictTime(double predict_time)
Set period of prediction of number of tasks in queue The meaning of parameter is only approximate.
CStopWatch m_Timer
Timer for measuring time periods.
void SetChangeCalcTime(double calc_time)
Set the time period (in seconds) for which average speed of changing of waiting tasks number is calcu...
virtual void OnEvent(EEvent event)
Main method for implementation of controlling algorithm.
void SetQueuedTasksThreshold(double threshold)
Set maximum number of tasks in queue per each thread The meaning of parameter is only approximate.
double m_IntegrCoeff
Integral coefficient.
double call_time
Time of history entry.
double m_DerivTime
Period of taking average "error" change speed.
double m_IntegrErr
Value of "error" integrated over all working time.
double m_DerivCoeff
Derivative coefficient.
SThreadPool_PID_ErrInfo(double time_, double err_)
CThreadPool_Controller_PID(unsigned int max_threads, unsigned int min_threads)
Constructor.
virtual CTimeSpan GetSafeSleepTime(void) const
Get maximum timeout for which calls to method HandleEvent() can be missing.
double m_Threshold
Threshold value.
double GetChangeCalcTime(void)
Get the time period for which average speed of changing of waiting tasks number is calculated.
void SetTaskMaxQueuedTime(double queued_time)
Set maximum time (in seconds) that task can wait in queue for processing until new thread will be lau...
double err
Value of the error.
double GetQueuedTasksThreshold(void)
Get maximum number of tasks in queue per each thread.
Pool of generic task-executing threads.
Entry in "error" changing history Information about "error" in some point of time in the past kept in...
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4