aboutsummaryrefslogtreecommitdiff
path: root/contrib/epee/include/misc_os_dependent.h
diff options
context:
space:
mode:
authorHoward Chu <hyc@symas.com>2016-04-06 03:41:52 +0100
committerHoward Chu <hyc@symas.com>2016-04-06 03:41:52 +0100
commitaaaf9e2e6d81a2f300d724f1daab3d7aa1f798bf (patch)
tree071f869e4d005a0190657a8a6d30299b6c001f41 /contrib/epee/include/misc_os_dependent.h
parentMerge pull request #780 (diff)
downloadmonero-aaaf9e2e6d81a2f300d724f1daab3d7aa1f798bf.tar.xz
Fix get_tick_count() on Windows
GetTickCount used in 52056dcfc480a126e06afaf209b1772b6aa77fb3 only has ~10-16ms resolution. Use higher rez timer to get 1ms rez.
Diffstat (limited to 'contrib/epee/include/misc_os_dependent.h')
-rw-r--r--contrib/epee/include/misc_os_dependent.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/contrib/epee/include/misc_os_dependent.h b/contrib/epee/include/misc_os_dependent.h
index 2abca0446..806d3e83e 100644
--- a/contrib/epee/include/misc_os_dependent.h
+++ b/contrib/epee/include/misc_os_dependent.h
@@ -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;