Fix get_tick_count() on Windows

GetTickCount used in 52056dcfc4
only has ~10-16ms resolution. Use higher rez timer to get 1ms rez.
This commit is contained in:
Howard Chu 2016-04-06 03:41:52 +01:00
parent e7c8a32a28
commit aaaf9e2e6d
1 changed files with 7 additions and 5 deletions

View File

@ -53,11 +53,13 @@ namespace misc_utils
#if defined(_MSC_VER)
return ::GetTickCount64();
#elif defined(WIN32)
# if defined(WIN64)
return GetTickCount64();
# else
return GetTickCount();
# endif
static LARGE_INTEGER pcfreq = {0};
LARGE_INTEGER ticks;
if (!pcfreq.QuadPart)
QueryPerformanceFrequency(&pcfreq);
QueryPerformanceCounter(&ticks);
ticks.QuadPart *= 1000; /* we want msec */
return ticks.QuadPart / pcfreq.QuadPart;
#elif defined(__MACH__)
clock_serv_t cclock;
mach_timespec_t mts;