mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-15 12:39:31 +03:00
Add asserts to check for faililng QueryPerformance* calls in precise_time_ns
Closes #2675.
This commit is contained in:
@@ -217,14 +217,16 @@ precise_time_ns(uint64_t *ns) {
|
||||
uint64_t time_nano = time * (info.numer / info.denom);
|
||||
*ns = time_nano;
|
||||
#elif __WIN32__
|
||||
int64_t ticks_per_s;
|
||||
QueryPerformanceFrequency((LARGE_INTEGER *)&ticks_per_s);
|
||||
if (ticks_per_s == 0LL) {
|
||||
ticks_per_s = 1LL;
|
||||
LARGE_INTEGER ticks_per_s;
|
||||
BOOL query_result = QueryPerformanceFrequency(&ticks_per_s);
|
||||
assert(query_result);
|
||||
if (ticks_per_s.QuadPart == 0LL) {
|
||||
ticks_per_s.QuadPart = 1LL;
|
||||
}
|
||||
int64_t ticks;
|
||||
QueryPerformanceCounter((LARGE_INTEGER *)&ticks);
|
||||
*ns = (uint64_t)((ticks * ns_per_s) / ticks_per_s);
|
||||
LARGE_INTEGER ticks;
|
||||
query_result = QueryPerformanceCounter(&ticks);
|
||||
assert(query_result);
|
||||
*ns = (uint64_t)((ticks.QuadPart * ns_per_s) / ticks_per_s.QuadPart);
|
||||
#else
|
||||
timespec ts;
|
||||
clock_gettime(CLOCK_MONOTONIC, &ts);
|
||||
|
||||
Reference in New Issue
Block a user