aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Spear/Sys/Timer/timer.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/Spear/Sys/Timer/timer.c b/Spear/Sys/Timer/timer.c
index 4a2fb2b..55e64b5 100644
--- a/Spear/Sys/Timer/timer.c
+++ b/Spear/Sys/Timer/timer.c
@@ -59,7 +59,7 @@ time_delta time_diff(time_point* start, time_point* end) {
59 // another processor, then the delta time can be negative. 59 // another processor, then the delta time can be negative.
60 return std::max(0, *end - *start); 60 return std::max(0, *end - *start);
61#else 61#else
62 return (end->tv_sec - start->tv_sec) * 1e9 + (end->tv_nsec - start->tv_nsec); 62 return (end->tv_sec - start->tv_sec) * nanoseconds + (end->tv_nsec - start->tv_nsec);
63#endif 63#endif
64} 64}
65 65
@@ -83,7 +83,7 @@ uint64_t time_point_to_ns(time_point* t) {
83#ifdef _WIN32 83#ifdef _WIN32
84 return (uint64_t)((double)*t * seconds_per_count * 1.0e+9); 84 return (uint64_t)((double)*t * seconds_per_count * 1.0e+9);
85#else 85#else
86 return (uint64_t)t->tv_sec * 1e+9 + (uint64_t)t->tv_nsec; 86 return (uint64_t)t->tv_sec * nanoseconds + (uint64_t)t->tv_nsec;
87#endif 87#endif
88} 88}
89 89
@@ -91,17 +91,17 @@ void time_add(const time_point* t, time_delta dt, time_point* out) {
91#ifdef _WIN32 91#ifdef _WIN32
92 *out = *t + dt; 92 *out = *t + dt;
93#else 93#else
94 out->tv_sec = t->tv_sec + (dt / nanoseconds); 94 out->tv_sec = t->tv_sec + (__time_t)(dt / nanoseconds);
95 out->tv_nsec = t->tv_nsec + (dt % nanoseconds); 95 out->tv_nsec = t->tv_nsec + (__time_t)(dt % nanoseconds);
96#endif 96#endif
97} 97}
98 98
99void time_sleep(time_delta dt) { 99void time_sleep(time_delta dt) {
100#ifdef _WIN32 100#ifdef _WIN32
101 const int64_t ms = dt / microseconds; 101 const uint64_t ms = dt / microseconds;
102 Sleep((DWORD)(ms)); 102 Sleep((DWORD)(ms));
103#else 103#else
104 const int64_t sec = dt / nanoseconds; 104 const uint64_t sec = dt / nanoseconds;
105 struct timespec ts; 105 struct timespec ts;
106 ts.tv_sec = (long)sec; 106 ts.tv_sec = (long)sec;
107 ts.tv_nsec = (long)(dt % nanoseconds); 107 ts.tv_nsec = (long)(dt % nanoseconds);