From: Matt Joiner Date: Wed, 28 May 2014 16:44:27 +0000 (+1000) Subject: Reorder actions after a chunk is received X-Git-Tag: v1.0.0~1718 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=9b6e3f25cd60fecca26845c9caf9c05c6a373487;p=btrtrc.git Reorder actions after a chunk is received --- diff --git a/client.go b/client.go index e86a93a9..fc4d48ff 100644 --- a/client.go +++ b/client.go @@ -856,13 +856,6 @@ func (me *Client) downloadedChunk(t *torrent, c *connection, msg *pp.Message) er } me.dataReady(dataSpec{t.InfoHash, req}) - // Cancel pending requests for this chunk. - for _, c := range t.Conns { - if me.connCancel(t, c, req) { - me.replenishConnRequests(t, c) - } - } - // Record that we have the chunk. delete(t.Pieces[req.Index].PendingChunkSpecs, req.chunkSpec) if len(t.Pieces[req.Index].PendingChunkSpecs) == 0 { @@ -878,6 +871,14 @@ func (me *Client) downloadedChunk(t *torrent, c *connection, msg *pp.Message) er } } + // Cancel pending requests for this chunk. + for _, c := range t.Conns { + if me.connCancel(t, c, req) { + log.Print("cancelled concurrent request for %s", req) + me.replenishConnRequests(t, c) + } + } + return nil }