Reduce idle request updates due to choke and unchoke messages

This commit is contained in:
Matt Joiner 2021-11-29 12:12:30 +11:00
parent 5dba8f96e4
commit ab78c449b7
1 changed files with 6 additions and 2 deletions

View File

@ -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