diff --git a/common/signal/timer.go b/common/signal/timer.go index 67ec5f13a..4182d4b2d 100644 --- a/common/signal/timer.go +++ b/common/signal/timer.go @@ -56,18 +56,20 @@ func (t *ActivityTimer) SetTimeout(timeout time.Duration) { return } + checkTask := &task.Periodic{ + Interval: timeout, + Execute: t.check, + } + t.Lock() if t.checkTask != nil { t.checkTask.Close() // nolint: errcheck } - t.checkTask = &task.Periodic{ - Interval: timeout, - Execute: t.check, - } + t.checkTask = checkTask t.Unlock() t.Update() - common.Must(t.checkTask.Start()) + common.Must(checkTask.Start()) } func CancelAfterInactivity(ctx context.Context, cancel context.CancelFunc, timeout time.Duration) *ActivityTimer {