-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclock.h
More file actions
31 lines (30 loc) · 789 Bytes
/
clock.h
File metadata and controls
31 lines (30 loc) · 789 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// A current_time function for use in the tests. Returns time in
// milliseconds.
#ifdef _WIN32
#include <Windows.h>
double current_time() {
LARGE_INTEGER freq, t;
QueryPerformanceCounter(&t);
QueryPerformanceFrequency(&freq);
return (t.QuadPart * 1000.0) / freq.QuadPart;
}
// Gross, these come from Windows.h
#undef max
#undef min
#else
#include <sys/time.h>
double current_time() {
static bool first_call = true;
static timeval reference_time;
if (first_call) {
first_call = false;
gettimeofday(&reference_time, NULL);
return 0.0;
} else {
timeval t;
gettimeofday(&t, NULL);
return ((t.tv_sec - reference_time.tv_sec)*1000.0 +
(t.tv_usec - reference_time.tv_usec)/1000.0);
}
}
#endif