From 99cbf09dd1e6405138286395a60816ba505a43d9 Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Sun, 18 Aug 2013 00:38:29 +1000 Subject: [PATCH] Add a timeraddspec helper function. --- util.c | 10 ++++++++++ util.h | 1 + 2 files changed, 11 insertions(+) diff --git a/util.c b/util.c index c012ba2e..f6cb9242 100644 --- a/util.c +++ b/util.c @@ -914,6 +914,16 @@ void us_to_timespec(struct timespec *spec, int64_t us) spec->tv_nsec = (us - (spec->tv_sec * 1000000)) * 1000; } +void timeraddspec(struct timespec *a, const struct timespec *b) +{ + a->tv_sec += b->tv_sec; + a->tv_nsec += b->tv_nsec; + if (a->tv_nsec >+ 1000000000) { + a->tv_nsec -= 1000000000; + a->tv_sec++; + } +} + /* Returns the microseconds difference between end and start times as a double */ double us_tdiff(struct timeval *end, struct timeval *start) { diff --git a/util.h b/util.h index a3d81639..12ff7cd2 100644 --- a/util.h +++ b/util.h @@ -82,6 +82,7 @@ void timespec_to_val(struct timeval *val, const struct timespec *spec); void timeval_to_spec(struct timespec *spec, const struct timeval *val); void us_to_timeval(struct timeval *val, int64_t us); void us_to_timespec(struct timespec *spec, int64_t us); +void timeraddspec(struct timespec *a, const struct timespec *b); 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);