Procházet zdrojové kódy

close timer sooner

Darien Raymond před 8 roky
rodič
revize
23a8da215f
1 změnil soubory, kde provedl 11 přidání a 4 odebrání
  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:
+			}
 		}
 	}
 }