diff --git a/util.c b/util.c index f2272ab0..28ac02d6 100644 --- a/util.c +++ b/util.c @@ -921,6 +921,15 @@ void cgsleep_us_r(cgtimer_t *ts_start, int64_t us) nanosleep_abstime(&ts_end); } +static int timespec_to_ms(struct timespec *ts) +{ + return ts->tv_sec * 1000 + ts->tv_nsec / 1000000; +} + +int cgtimer_to_ms(cgtimer_t *cgt) +{ + return timespec_to_ms(cgt); +} #else void cgtimer_time(cgtimer_t *ts_start) { @@ -956,6 +965,16 @@ void cgsleep_us_r(cgtimer_t *ts_start, int64_t us) cgsleep_ms_r(ts_start, ms); } + +static int timeval_to_ms(struct timeval *tv) +{ + return tv->tv_sec * 1000 + tv->tv_usec / 1000; +} + +int cgtimer_to_ms(cgtimer_t *cgt) +{ + return timeval_to_ms(cgt); +} #endif void cgsleep_ms(int ms) diff --git a/util.h b/util.h index d864bc5a..53efda61 100644 --- a/util.h +++ b/util.h @@ -90,6 +90,7 @@ void cgtimer_time(cgtimer_t *ts_start); #define cgsleep_prepare_r(ts_start) cgtimer_time(ts_start) void cgsleep_ms_r(cgtimer_t *ts_start, int ms); void cgsleep_us_r(cgtimer_t *ts_start, int64_t us); +int cgtimer_to_ms(cgtimer_t *cgt); double us_tdiff(struct timeval *end, struct timeval *start); double tdiff(struct timeval *end, struct timeval *start); bool stratum_send(struct pool *pool, char *s, ssize_t len);