MXS-2008 Remove dependency on mxs_clock()
This commit is contained in:
@ -23,7 +23,6 @@
|
|||||||
#include <sys/timerfd.h>
|
#include <sys/timerfd.h>
|
||||||
|
|
||||||
#include <maxbase/atomic.h>
|
#include <maxbase/atomic.h>
|
||||||
#include <maxscale/clock.h>
|
|
||||||
#include <maxscale/log_manager.h>
|
#include <maxscale/log_manager.h>
|
||||||
#include <maxscale/semaphore.hh>
|
#include <maxscale/semaphore.hh>
|
||||||
|
|
||||||
@ -721,6 +720,21 @@ void Worker::resolve_poll_error(int fd, int errornum, int op)
|
|||||||
raise(SIGABRT);
|
raise(SIGABRT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
|
||||||
|
long time_in_100ms_ticks()
|
||||||
|
{
|
||||||
|
using TenthSecondDuration = std::chrono::duration<long, std::ratio<1,10>>;
|
||||||
|
|
||||||
|
auto dur = std::chrono::steady_clock::now().time_since_epoch();
|
||||||
|
auto tenth = std::chrono::duration_cast<TenthSecondDuration>(dur);
|
||||||
|
|
||||||
|
return tenth.count();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The main polling loop
|
* The main polling loop
|
||||||
*/
|
*/
|
||||||
@ -797,12 +811,12 @@ void Worker::poll_waitevents()
|
|||||||
m_statistics.n_fds[(nfds < STATISTICS::MAXNFDS ? (nfds - 1) : STATISTICS::MAXNFDS - 1)]++;
|
m_statistics.n_fds[(nfds < STATISTICS::MAXNFDS ? (nfds - 1) : STATISTICS::MAXNFDS - 1)]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64_t cycle_start = mxs_clock();
|
uint64_t cycle_start = time_in_100ms_ticks();
|
||||||
|
|
||||||
for (int i = 0; i < nfds; i++)
|
for (int i = 0; i < nfds; i++)
|
||||||
{
|
{
|
||||||
/** Calculate event queue statistics */
|
/** Calculate event queue statistics */
|
||||||
int64_t started = mxs_clock();
|
int64_t started = time_in_100ms_ticks();
|
||||||
int64_t qtime = started - cycle_start;
|
int64_t qtime = started - cycle_start;
|
||||||
|
|
||||||
if (qtime > STATISTICS::N_QUEUE_TIMES)
|
if (qtime > STATISTICS::N_QUEUE_TIMES)
|
||||||
@ -846,7 +860,7 @@ void Worker::poll_waitevents()
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Calculate event execution statistics */
|
/** Calculate event execution statistics */
|
||||||
qtime = mxs_clock() - started;
|
qtime = time_in_100ms_ticks() - started;
|
||||||
|
|
||||||
if (qtime > STATISTICS::N_QUEUE_TIMES)
|
if (qtime > STATISTICS::N_QUEUE_TIMES)
|
||||||
{
|
{
|
||||||
@ -854,7 +868,7 @@ void Worker::poll_waitevents()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_statistics.exectimes[qtime % STATISTICS::N_QUEUE_TIMES]++;
|
m_statistics.exectimes[qtime]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_statistics.maxexectime = MXS_MAX(m_statistics.maxexectime, qtime);
|
m_statistics.maxexectime = MXS_MAX(m_statistics.maxexectime, qtime);
|
||||||
|
Reference in New Issue
Block a user