Reorder actions after a chunk is received

This commit is contained in:
Matt Joiner 2014-05-29 02:44:27 +10:00
parent 26116a7df8
commit 9b6e3f25cd
1 changed files with 8 additions and 7 deletions

View File

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