4 #include <boost/bind.hpp>
13 #define kPollIntervalMultiplier 2
14 #define kInactivityMultiplier 50
17 uint64_t tbb_keepawake_time_msec,
18 uint64_t inactivity_time_msec,
19 uint64_t poll_interval_msec) :
20 scheduler_(scheduler), cancelled_(false), timer_impl_(nullptr),
21 inactivity_time_usec_(inactivity_time_msec * 1000),
22 poll_interval_msec_(poll_interval_msec),
23 tbb_keepawake_time_msec_(tbb_keepawake_time_msec),
25 last_enqueue_count_(0), last_done_count_(0), poll_count_(0) {
64 boost::system::error_code ec;
70 boost::asio::placeholders::error));
74 uint64_t done_count) {
105 if (ec && ec.value() == boost::asio::error::operation_aborted) {
118 LOG(ERROR,
"!!!! ERROR !!!! Task Monitor failed");
uint64_t last_enqueue_count_
The TaskScheduler keeps track of what tasks are currently schedulable. When a task is enqueued it is ...
uint64_t inactivity_time_usec_
uint64_t poll_interval_msec_
void Run(const boost::system::error_code &ec)
boost::asio::io_context * io_service()
uint64_t last_done_count_
#define kPollIntervalMultiplier
TaskScheduler * scheduler_
void Start(EventManager *evm)
std::unique_ptr< TimerImpl > timer_impl_
#define kInactivityMultiplier
#define LOG(_Level, _Msg)
static uint64_t ClockMonotonicUsec()
uint64_t done_count() const
uint64_t tbb_keepawake_time_msec_
TaskMonitor(TaskScheduler *scheduler, uint64_t tbb_keepawake_time_msec, uint64_t inactivity_time_msec, uint64_t poll_interval_msec)
uint64_t enqueue_count() const
bool Monitor(uint64_t t, uint64_t enqueue_count, uint64_t done_count)