From 97333deb3f6713d7d12168c8980d69cc60961063 Mon Sep 17 00:00:00 2001 From: Yang Tse Date: Wed, 2 Jul 2008 03:04:56 +0000 Subject: fallback to gettimeofday when monotonic clock is unavailable at run-time --- lib/timeval.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/timeval.c b/lib/timeval.c index 74f0b3a2f..25ae76329 100644 --- a/lib/timeval.c +++ b/lib/timeval.c @@ -52,9 +52,24 @@ struct timeval curlx_tvnow(void) */ struct timeval now; struct timespec tsnow; - (void)clock_gettime(CLOCK_MONOTONIC, &tsnow); - now.tv_sec = tsnow.tv_sec; - now.tv_usec = tsnow.tv_nsec / 1000; + if(0 == clock_gettime(CLOCK_MONOTONIC, &tsnow)) { + now.tv_sec = tsnow.tv_sec; + now.tv_usec = tsnow.tv_nsec / 1000; + } + /* + ** Even when the configure process has truly detected monotonic clock + ** availability, it might happen that it is not actually available at + ** run-time. When this occurs simply fallback to other time source. + */ +#ifdef HAVE_GETTIMEOFDAY + else + (void)gettimeofday(&now, NULL); +#else + else { + now.tv_sec = (long)time(NULL); + now.tv_usec = 0; + } +#endif return now; } -- cgit v1.2.3