From: Matt Joiner Date: Wed, 20 Mar 2024 03:39:06 +0000 (+1100) Subject: Improve some internal piece priority naming X-Git-Tag: v1.56.0~40 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=8323f79e989744276fdb1c159101df82e1f4f6ae;p=btrtrc.git Improve some internal piece priority naming --- diff --git a/piece.go b/piece.go index 3ca674d0..c65ba9a0 100644 --- 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 } diff --git a/torrent.go b/torrent.go index fe1a1972..d1f4a646 100644 --- a/torrent.go +++ b/torrent.go @@ -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()) }