diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2025-04-21 13:03:00 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2025-04-28 19:28:52 -0400 |
commit | 8e107b2280c12dc70e635220c78fce7656bc4304 (patch) | |
tree | 1ef3a12e2d8f0160b42d0f97e36b1af64222132f /src/basecmd.c | |
parent | f1e0730701e6bf2ece78f50c24bf0a5dad41b604 (diff) | |
download | kutter-8e107b2280c12dc70e635220c78fce7656bc4304.tar.gz kutter-8e107b2280c12dc70e635220c78fce7656bc4304.tar.xz kutter-8e107b2280c12dc70e635220c78fce7656bc4304.zip |
basecmd: Update stats timing check to support 32bit duration
Use a 32bit duration check instead of the previous 31bit check.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/basecmd.c')
-rw-r--r-- | src/basecmd.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/basecmd.c b/src/basecmd.c index 6d26884d..d6d6e846 100644 --- a/src/basecmd.c +++ b/src/basecmd.c @@ -299,6 +299,13 @@ command_get_uptime(uint32_t *args) } DECL_COMMAND_FLAGS(command_get_uptime, HF_IN_SHUTDOWN, "get_uptime"); +// Similar to timer_is_before(), but handles full 32bit duration +static int +timer_has_elapsed(uint32_t start, uint32_t cur, uint32_t duration) +{ + return (uint32_t)(cur - start) >= duration; +} + #define SUMSQ_BASE 256 DECL_CONSTANT("STATS_SUMSQ_BASE", SUMSQ_BASE); @@ -322,7 +329,7 @@ stats_update(uint32_t start, uint32_t cur) nextsumsq = 0xffffffff; sumsq = nextsumsq; - if (timer_is_before(cur, stats_send_time + timer_from_us(5000000))) + if (!timer_has_elapsed(stats_send_time, cur, timer_from_us(5000000))) return; sendf("stats count=%u sum=%u sumsq=%u", count, sum, sumsq); if (cur < stats_send_time) |