Kaynağa Gözat

release timer faster after ctx finish

Darien Raymond 8 yıl önce
ebeveyn
işleme
aea71c2aa8
1 değiştirilmiş dosya ile 5 ekleme ve 2 silme
  1. 5 2
      common/signal/timer.go

+ 5 - 2
common/signal/timer.go

@@ -24,12 +24,16 @@ func (t *realActivityTimer) Update() {
 }
 
 func (t *realActivityTimer) run() {
+	ticker := time.NewTicker(t.timeout)
+	defer ticker.Stop()
+
 	for {
 		select {
-		case <-time.After(t.timeout):
+		case <-ticker.C:
 		case <-t.ctx.Done():
 			return
 		}
+
 		select {
 		case <-t.updated:
 		// Updated keep waiting.
@@ -37,7 +41,6 @@ func (t *realActivityTimer) run() {
 			t.cancel()
 			return
 		}
-
 	}
 }