From: Matt Joiner Date: Mon, 29 Nov 2021 01:12:30 +0000 (+1100) Subject: Reduce idle request updates due to choke and unchoke messages X-Git-Tag: v1.39.0~34 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=ab78c449b7cbbd9dea2940243fcb31423591cf0b;p=btrtrc.git Reduce idle request updates due to choke and unchoke messages --- diff --git a/peerconn.go b/peerconn.go index 003e32c5..8efa343f 100644 --- a/peerconn.go +++ b/peerconn.go @@ -1107,7 +1107,9 @@ func (c *PeerConn) mainReadLoop() (err error) { c.peerChoking = true // We can now reset our interest. I think we do this after setting the flag in case the // peerImpl updates synchronously (webseeds?). - c.updateRequests("choked") + if !c.actualRequestState.Requests.IsEmpty() { + c.updateRequests("choked") + } c.updateExpectingChunks() case pp.Unchoke: if !c.peerChoking { @@ -1133,7 +1135,9 @@ func (c *PeerConn) mainReadLoop() (err error) { c.fastEnabled()) torrent.Add("requestsPreservedThroughChoking", int64(preservedCount)) } - c.updateRequests("unchoked") + if !c.t._pendingPieces.IsEmpty() { + c.updateRequests("unchoked") + } c.updateExpectingChunks() case pp.Interested: c.peerInterested = true