diff --git a/common/signal/timer.go b/common/signal/timer.go index d0acae469..0eb92d2ab 100644 --- a/common/signal/timer.go +++ b/common/signal/timer.go @@ -21,14 +21,21 @@ func (t *ActivityTimer) UpdateActivity() { func (t *ActivityTimer) run() { for { - time.Sleep(t.timeout) select { - case <-t.ctx.Done(): - return - case <-t.updated: - default: + case <-time.After(t.timeout): t.cancel() return + case <-t.ctx.Done(): + return + default: + select { + case <-time.After(t.timeout): + t.cancel() + return + case <-t.ctx.Done(): + return + case <-t.updated: + } } } }