aboutsummaryrefslogtreecommitdiffstats
path: root/src/basecmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/basecmd.c')
-rw-r--r--src/basecmd.c9
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)