Change piece prioritization
This commit is contained in:
parent
2025daa77c
commit
92e0679b04
@ -295,7 +295,7 @@ func (cl *Client) readRaisePiecePriorities(t *torrent, off, _len int64) {
|
||||
return
|
||||
}
|
||||
cl.raisePiecePriority(t, index, piecePriorityNext)
|
||||
for i := 0; i < t.numConnsUnchoked()-2; i++ {
|
||||
for i := 0; i < 3; i++ {
|
||||
index++
|
||||
if index >= t.numPieces() {
|
||||
break
|
||||
|
@ -98,14 +98,15 @@ func (cn *connection) pendPiece(piece int, priority piecePriority) {
|
||||
// priority pieces.
|
||||
switch priority {
|
||||
case piecePriorityReadahead:
|
||||
key -= len(cn.piecePriorities) / 3
|
||||
case piecePriorityNext:
|
||||
key -= len(cn.piecePriorities) / 2
|
||||
case piecePriorityNow:
|
||||
key -= len(cn.piecePriorities)
|
||||
case piecePriorityNext:
|
||||
key -= 2 * len(cn.piecePriorities)
|
||||
case piecePriorityNow:
|
||||
key -= 3 * len(cn.piecePriorities)
|
||||
}
|
||||
// Favour earlier pieces more than later pieces.
|
||||
key -= piece / 2
|
||||
// key -= piece / 2
|
||||
|
||||
cn.pieceRequestOrder.SetPiece(piece, key)
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user