From 99830625222a959e03fa0b2a194378e08d7b1a9a Mon Sep 17 00:00:00 2001 From: adman Date: Thu, 26 Mar 2026 22:39:48 +0100 Subject: [PATCH] fix timer --- event/timer.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/event/timer.go b/event/timer.go index ff6a5cb..25f5f73 100644 --- a/event/timer.go +++ b/event/timer.go @@ -54,22 +54,24 @@ func (t *Timer) Trigger(ch chan any) { triggerAt := time.Time{} found := false iOnce, iInterval := -1, -1 - var oTask OnceTask - for iOnce, oTask = range t.Once { + + for i, oTask := range t.Once { if oTask.Trigger.Before(triggerAt) || triggerAt.IsZero() { found = true triggerAt = oTask.Trigger - break + iOnce = i } } - var iTask IntervalTask - for iInterval, iTask = range t.Interval { + + for i, iTask := range t.Interval { if iTask.LastTrigger.Add(iTask.Interval).Before(triggerAt) || triggerAt.IsZero() { found = true triggerAt = iTask.LastTrigger.Add(iTask.Interval) - break + iOnce = -1 + iInterval = i } } + if !found { return } @@ -87,7 +89,6 @@ func (t *Timer) Trigger(ch chan any) { } panic("unreachable") } - func (t *Timer) Every(interval time.Duration, f func() error) { t.Interval = append(t.Interval, IntervalTask{ F: f,