From: Matt Joiner <anacrolix@gmail.com>
Date: Tue, 17 Jul 2018 11:29:54 +0000 (+1000)
Subject: Wake connections that could send a request for a deleted piece
X-Git-Tag: v1.0.0~70
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=d575877a5de09d49d8ffa6118f90421837699fca;p=btrtrc.git

Wake connections that could send a request for a deleted piece

I'm not sure this is entirely correct, but not doing it is probably less correct. It should help prevent stalls where writers aren't requesting because they're starved out of opportunities by other connections.
---

diff --git a/connection.go b/connection.go
index 0393497c..883d6c8e 100644
--- a/connection.go
+++ b/connection.go
@@ -1483,8 +1483,11 @@ func (c *connection) deleteRequest(r request) bool {
 		panic(n)
 	}
 	c.updateRequests()
-	// TODO: Other connections that aren't interested, and can provide this
-	// chunk might be wakeable?
+	for _c := range c.t.conns {
+		if !_c.Interested && _c != c && c.PeerHasPiece(pieceIndex(r.Index)) {
+			_c.updateRequests()
+		}
+	}
 	return true
 }