]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Drop peer request alloc reservations when peer is closed
authorMatt Joiner <anacrolix@gmail.com>
Wed, 3 May 2023 06:40:35 +0000 (16:40 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Tue, 9 May 2023 05:46:53 +0000 (15:46 +1000)
Might fix a goroutine leak.

peer.go

diff --git a/peer.go b/peer.go
index 4f7831373e2f07c852411db796c014d2523af92b..d59c5c4c336ac594b871a48dafd489f9e114a382 100644 (file)
--- a/peer.go
+++ b/peer.go
@@ -324,6 +324,9 @@ func (p *Peer) close() {
        if p.updateRequestsTimer != nil {
                p.updateRequestsTimer.Stop()
        }
+       for _, prs := range p.peerRequests {
+               prs.allocReservation.Drop()
+       }
        p.peerImpl.onClose()
        if p.t != nil {
                p.t.decPeerPieceAvailability(p)