"github.com/RoaringBitmap/roaring"
"github.com/anacrolix/generics/heap"
"github.com/anacrolix/log"
"github.com/RoaringBitmap/roaring"
"github.com/anacrolix/generics/heap"
"github.com/anacrolix/log"
- leftPiece := &p.pieceStates[leftPieceIndex]
- rightPiece := &p.pieceStates[rightPieceIndex]
+ leftPiece := p.pieceStates[leftPieceIndex].UnwrapPtr()
+ rightPiece := p.pieceStates[rightPieceIndex].UnwrapPtr()
// Putting this first means we can steal requests from lesser-performing peers for our first few
// new requests.
priority := func() PiecePriority {
// Putting this first means we can steal requests from lesser-performing peers for our first few
// new requests.
priority := func() PiecePriority {
pieceStates: t.requestPieceStates,
requestIndexes: t.requestIndexes,
}
pieceStates: t.requestPieceStates,
requestIndexes: t.requestIndexes,
}
// Caller-provided allocation for roaring bitmap iteration.
var it typedRoaring.Iterator[RequestIndex]
requestStrategy.GetRequestablePieces(
// Caller-provided allocation for roaring bitmap iteration.
var it typedRoaring.Iterator[RequestIndex]
requestStrategy.GetRequestablePieces(
allowedFast := p.peerAllowedFast.Contains(pieceIndex)
t.iterUndirtiedRequestIndexesInPiece(&it, pieceIndex, func(r requestStrategy.RequestIndex) {
if !allowedFast {
allowedFast := p.peerAllowedFast.Contains(pieceIndex)
t.iterUndirtiedRequestIndexesInPiece(&it, pieceIndex, func(r requestStrategy.RequestIndex) {
if !allowedFast {