소스 검색

release timer faster after ctx finish

Darien Raymond 8 년 전
부모
커밋
aea71c2aa8
1개의 변경된 파일5개의 추가작업 그리고 2개의 파일을 삭제
  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
 		}
-
 	}
 }