revert priorities management

This commit is contained in:
nikk gitanes
2021-12-23 12:22:56 +03:00
parent 785ceb3a0e
commit e47a6daee3

View File

@@ -252,30 +252,30 @@ func (c *Cache) getRemPieces() []*Piece {
if c.isIdInFileBE(ranges, r.getReaderPiece()) {
continue
}
// readerPos := r.getReaderPiece()
// readerRAHPos := r.getReaderRAHPiece()
// end := r.getPiecesRange().End
// count := int(16 * 1024 * 1024 / c.pieceLength * 5) // 80 MB
// if count > 40 {
// count = 40
// }
// limit := 0
// for i := readerPos; i < end && limit < count; i++ {
// if !c.pieces[i].Complete {
// if i == readerPos {
// c.torrent.Piece(i).SetPriority(torrent.PiecePriorityNow)
// } else if i == readerPos+1 {
// c.torrent.Piece(i).SetPriority(torrent.PiecePriorityNext)
// } else if i > readerPos && i <= readerRAHPos {
// c.torrent.Piece(i).SetPriority(torrent.PiecePriorityReadahead)
// } else if i > readerRAHPos && i <= readerRAHPos+5 && c.torrent.PieceState(i).Priority != torrent.PiecePriorityHigh {
// c.torrent.Piece(i).SetPriority(torrent.PiecePriorityHigh)
// } else if i > readerRAHPos+5 && c.torrent.PieceState(i).Priority != torrent.PiecePriorityNormal {
// c.torrent.Piece(i).SetPriority(torrent.PiecePriorityNormal)
// }
// limit++
// }
// }
readerPos := r.getReaderPiece()
readerRAHPos := r.getReaderRAHPiece()
end := r.getPiecesRange().End
count := int(16 * 1024 * 1024 / c.pieceLength * 5) // 80 MB
if count > 40 {
count = 40
}
limit := 0
for i := readerPos; i < end && limit < count; i++ {
if !c.pieces[i].Complete {
if i == readerPos {
c.torrent.Piece(i).SetPriority(torrent.PiecePriorityNow)
} else if i == readerPos+1 {
c.torrent.Piece(i).SetPriority(torrent.PiecePriorityNext)
} else if i > readerPos && i <= readerRAHPos {
c.torrent.Piece(i).SetPriority(torrent.PiecePriorityReadahead)
} else if i > readerRAHPos && i <= readerRAHPos+5 && c.torrent.PieceState(i).Priority != torrent.PiecePriorityHigh {
c.torrent.Piece(i).SetPriority(torrent.PiecePriorityHigh)
} else if i > readerRAHPos+5 && c.torrent.PieceState(i).Priority != torrent.PiecePriorityNormal {
c.torrent.Piece(i).SetPriority(torrent.PiecePriorityNormal)
}
limit++
}
}
}
c.muReaders.Unlock()