diff options
author | 3gg <3gg@shellblade.net> | 2025-07-31 15:34:46 -0700 |
---|---|---|
committer | 3gg <3gg@shellblade.net> | 2025-07-31 15:34:46 -0700 |
commit | 49011a5ea5e29bf08eff79e701a2bd6d80758897 (patch) | |
tree | ddfd7190fc7f89b4b6847335d289f229f4be0153 | |
parent | 171344a213dbe2f7a8e7273ad5a0de8b9c1b08bb (diff) |
-rw-r--r-- | Spear/Sys/Timer/timer.c | 12 |
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 | ||
99 | void time_sleep(time_delta dt) { | 99 | void 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); |