From 87416bcd8bd3e8816750150e2dbe90a970400a00 Mon Sep 17 00:00:00 2001 From: Guus Sliepen Date: Mon, 21 Jan 2013 16:12:18 +0100 Subject: [PATCH] Get microsecond time resolution on Windows. --- src/dropin.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/dropin.c b/src/dropin.c index f1a51ac8..ab3fd6bb 100644 --- a/src/dropin.c +++ b/src/dropin.c @@ -158,8 +158,18 @@ int vasprintf(char **buf, const char *fmt, va_list ap) { #ifndef HAVE_GETTIMEOFDAY int gettimeofday(struct timeval *tv, void *tz) { +#ifdef HAVE_MINGW + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + uint64_t lt = (uint64_t)ft.dwLowDateTime | ((uint64_t)ft.dwHighDateTime << 32); + lt -= 116444736000000000ULL; + tv->tv_sec = lt / 10000000; + tv->tv_usec = (lt / 10) % 1000000; +#else +#warning No high resolution time source! tv->tv_sec = time(NULL); tv->tv_usec = 0; +#endif return 0; } #endif