瀏覽代碼

p2p: change ping ticker to timer (#15071)

Using a Timer over Ticker seems to be a lot better, though I cannot fully
account for why that it behaves so (since Ticker should be more bursty, but not
necessarily more active over time, but that may depend on how long window it
uses to decide on when to tick next)
Martin Holst Swende 8 年之前
父節點
當前提交
dc92779c0a
共有 1 個文件被更改,包括 2 次插入1 次删除
  1. 2 1
      p2p/peer.go

+ 2 - 1
p2p/peer.go

@@ -190,7 +190,7 @@ loop:
 }
 
 func (p *Peer) pingLoop() {
-	ping := time.NewTicker(pingInterval)
+	ping := time.NewTimer(pingInterval)
 	defer p.wg.Done()
 	defer ping.Stop()
 	for {
@@ -200,6 +200,7 @@ func (p *Peer) pingLoop() {
 				p.protoErr <- err
 				return
 			}
+			ping.Reset(pingInterval)
 		case <-p.closed:
 			return
 		}