diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-11-06 17:31:17 +0800 |
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-11-06 17:31:17 +0800 |
| commit | a458ef365e3ace2e51e1bf0c2edefa5d02d032a8 (patch) | |
| tree | 18fca7e8c9e3e716a472b31a23d28b5424f46d7c /include/cru/base/Timer.h | |
| parent | 6315e654ce0be2d2cc148e9ff80f611ac1176348 (diff) | |
| download | cru-a458ef365e3ace2e51e1bf0c2edefa5d02d032a8.tar.gz cru-a458ef365e3ace2e51e1bf0c2edefa5d02d032a8.tar.bz2 cru-a458ef365e3ace2e51e1bf0c2edefa5d02d032a8.zip | |
Fix 0ms timer.
Diffstat (limited to 'include/cru/base/Timer.h')
| -rw-r--r-- | include/cru/base/Timer.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/include/cru/base/Timer.h b/include/cru/base/Timer.h index 955296b7..5508bccf 100644 --- a/include/cru/base/Timer.h +++ b/include/cru/base/Timer.h @@ -32,13 +32,17 @@ class TimerRegistry : public Object { std::chrono::milliseconds NextTimeout( std::chrono::steady_clock::time_point now) const { - return std::chrono::duration_cast<std::chrono::milliseconds>( - interval - (now - created) % interval); + return interval == std::chrono::milliseconds::zero() + ? std::chrono::milliseconds::zero() + : std::chrono::duration_cast<std::chrono::milliseconds>( + interval - (now - created) % interval); } bool Update(std::chrono::steady_clock::time_point now) { auto next_trigger = - last_check - (last_check - created) % interval + interval; + interval == std::chrono::milliseconds::zero() + ? last_check + : last_check - (last_check - created) % interval + interval; if (now >= next_trigger) { last_check = next_trigger; return true; |
