]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Improve some internal piece priority naming
authorMatt Joiner <anacrolix@gmail.com>
Wed, 20 Mar 2024 03:39:06 +0000 (14:39 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Wed, 20 Mar 2024 03:39:06 +0000 (14:39 +1100)
piece.go
torrent.go

index 3ca674d0731af2348476813cf233cce23f42b2c3..c65ba9a0020407c64e92919f98019708c7f894e3 100644 (file)
--- a/piece.go
+++ b/piece.go
@@ -212,6 +212,7 @@ func (p *Piece) SetPriority(prio PiecePriority) {
        p.t.updatePiecePriority(p.index, "Piece.SetPriority")
 }
 
+// This is priority based only on piece, file and reader priorities.
 func (p *Piece) purePriority() (ret PiecePriority) {
        for _, f := range p.files {
                ret.Raise(f.prio)
@@ -233,7 +234,8 @@ func (p *Piece) ignoreForRequests() bool {
        return p.hashing || p.marking || !p.haveHash() || p.t.pieceComplete(p.index) || p.queuedForHash()
 }
 
-func (p *Piece) uncachedPriority() (ret piecePriority) {
+// This is the priority adjusted for piece state like completion, hashing etc.
+func (p *Piece) effectivePriority() (ret PiecePriority) {
        if p.ignoreForRequests() {
                return PiecePriorityNone
        }
index fe1a19722eb0b1003ff8e1db1ab06b8349ecb8c1..d1f4a646838f0b4c480ca38913720432d0d8cac5 100644 (file)
@@ -685,7 +685,7 @@ func (t *Torrent) name() string {
 
 func (t *Torrent) pieceState(index pieceIndex) (ret PieceState) {
        p := &t.pieces[index]
-       ret.Priority = t.piecePriority(index)
+       ret.Priority = p.effectivePriority()
        ret.Completion = p.completion()
        ret.QueuedForHash = p.queuedForHash()
        ret.Hashing = p.hashing
@@ -1420,7 +1420,7 @@ func (t *Torrent) updatePiecePriorityNoTriggers(piece pieceIndex) (pendingChange
                t.updatePieceRequestOrderPiece(piece)
        }
        p := t.piece(piece)
-       newPrio := p.uncachedPriority()
+       newPrio := p.effectivePriority()
        // t.logger.Printf("torrent %p: piece %d: uncached priority: %v", t, piece, newPrio)
        if newPrio == PiecePriorityNone && p.haveHash() {
                return t._pendingPieces.CheckedRemove(uint32(piece))
@@ -1484,10 +1484,6 @@ func (t *Torrent) forReaderOffsetPieces(f func(begin, end pieceIndex) (more bool
        return true
 }
 
-func (t *Torrent) piecePriority(piece pieceIndex) piecePriority {
-       return t.piece(piece).uncachedPriority()
-}
-
 func (t *Torrent) pendRequest(req RequestIndex) {
        t.piece(t.pieceIndexOfRequestIndex(req)).pendChunkIndex(req % t.chunksPerRegularPiece())
 }