-// check callers updaterequests
-func (cn *Peer) stopRequestingPiece(piece pieceIndex) bool {
- return cn._pieceRequestOrder.Remove(piece)
-}
-
-// This is distinct from Torrent piece priority, which is the user's
-// preference. Connection piece priority is specific to a connection and is
-// used to pseudorandomly avoid connections always requesting the same pieces
-// and thus wasting effort.
-func (cn *Peer) updatePiecePriority(piece pieceIndex) bool {
- tpp := cn.t.piecePriority(piece)
- if !cn.peerHasPiece(piece) {
- tpp = PiecePriorityNone
- }
- if tpp == PiecePriorityNone {
- return cn.stopRequestingPiece(piece)
- }
- prio := cn.getPieceInclination()[piece]
- return cn._pieceRequestOrder.Set(piece, prio)
-}
-
-func (cn *Peer) getPieceInclination() []int {
- if cn.pieceInclination == nil {
- cn.pieceInclination = cn.t.getConnPieceInclination()
- }
- return cn.pieceInclination
-}
-
-func (cn *Peer) discardPieceInclination() {
- if cn.pieceInclination == nil {
- return
- }
- cn.t.putPieceInclination(cn.pieceInclination)
- cn.pieceInclination = nil
-}
-