فهرست منبع

close timer sooner

Darien Raymond 8 سال پیش
والد
کامیت
23a8da215f
1فایلهای تغییر یافته به همراه11 افزوده شده و 4 حذف شده
  1. 11 4
      common/signal/timer.go

+ 11 - 4
common/signal/timer.go

@@ -21,14 +21,21 @@ func (t *ActivityTimer) UpdateActivity() {
 
 func (t *ActivityTimer) run() {
 	for {
-		time.Sleep(t.timeout)
 		select {
+		case <-time.After(t.timeout):
+			t.cancel()
+			return
 		case <-t.ctx.Done():
 			return
-		case <-t.updated:
 		default:
-			t.cancel()
-			return
+			select {
+			case <-time.After(t.timeout):
+				t.cancel()
+				return
+			case <-t.ctx.Done():
+				return
+			case <-t.updated:
+			}
 		}
 	}
 }