diff options
author | wizjin <wizjin@outlook.com> | 2013-12-03 11:07:01 +0800 |
---|---|---|
committer | wizjin <wizjin@outlook.com> | 2013-12-03 11:07:01 +0800 |
commit | 27245a4e156819942899cefb49e6e4ddf8a07377 (patch) | |
tree | 42327b6a18c62af1d7882bbd7c1b8a3d22351afb /librabbitmq | |
parent | 826422b98ceddc90f7ad409352e4ee2c018a6bef (diff) | |
download | rabbitmq-c-github-ask-27245a4e156819942899cefb49e6e4ddf8a07377.tar.gz |
Fix function amqp_get_monotonic_timestamp return zero
On one of my PC (Intel Core2 Duo Processor E7500 2.93 GHz),
QueryPerformanceFrequency return 2933330000.
This value is greater than AMQP_NS_PER_S (1000000000).
Diffstat (limited to 'librabbitmq')
-rw-r--r-- | librabbitmq/amqp_timer.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/librabbitmq/amqp_timer.c b/librabbitmq/amqp_timer.c index f89d43d..95606b8 100644 --- a/librabbitmq/amqp_timer.c +++ b/librabbitmq/amqp_timer.c @@ -40,7 +40,7 @@ uint64_t amqp_get_monotonic_timestamp(void) { - static uint64_t NS_PER_COUNT = 0; + static double NS_PER_COUNT = 0; LARGE_INTEGER perf_count; if (0 == NS_PER_COUNT) { @@ -48,14 +48,14 @@ amqp_get_monotonic_timestamp(void) if (!QueryPerformanceFrequency(&perf_frequency)) { return 0; } - NS_PER_COUNT = AMQP_NS_PER_S / perf_frequency.QuadPart; + NS_PER_COUNT = (double)AMQP_NS_PER_S / perf_frequency.QuadPart; } if (!QueryPerformanceCounter(&perf_count)) { return 0; } - return perf_count.QuadPart * NS_PER_COUNT; + return (uint64_t)(perf_count.QuadPart * NS_PER_COUNT); } #endif /* AMQP_WIN_TIMER_API */ |