]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Simplify PIece.iterUndirtiedChunks
authorMatt Joiner <anacrolix@gmail.com>
Sat, 11 Sep 2021 11:17:47 +0000 (21:17 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Wed, 15 Sep 2021 13:33:17 +0000 (23:33 +1000)
piece.go
requesting.go

index e1b6ff90aa8a504330da2095e48593c62bd557f6..c79446972c19ae907e156981264f44edc0a72da4 100644 (file)
--- a/piece.go
+++ b/piece.go
@@ -237,14 +237,11 @@ func (p *Piece) State() PieceState {
        return p.t.PieceState(p.index)
 }
 
-func (p *Piece) iterUndirtiedChunks(f func(cs ChunkSpec) bool) bool {
+func (p *Piece) iterUndirtiedChunks(f func(cs ChunkSpec)) {
        for i := pp.Integer(0); i < p.numChunks(); i++ {
                if p.chunkIndexDirty(i) {
                        continue
                }
-               if !f(p.chunkIndexSpec(i)) {
-                       return false
-               }
+               f(p.chunkIndexSpec(i))
        }
-       return true
 }
index 6a10e0a9e16f5a477dce5c68a7c2844930acbbef..829470f72bd936c8e11426b39eb8287fdd27bcf1 100644 (file)
@@ -8,7 +8,6 @@ import (
 
        "github.com/anacrolix/chansync"
        request_strategy "github.com/anacrolix/torrent/request-strategy"
-       "github.com/anacrolix/torrent/types"
 )
 
 func (cl *Client) requester() {
@@ -50,18 +49,13 @@ func (cl *Client) doRequests() {
                for i := range t.pieces {
                        p := &t.pieces[i]
                        rst.Pieces = append(rst.Pieces, request_strategy.Piece{
-                               Request:          !t.ignorePieceForRequests(i),
-                               Priority:         p.purePriority(),
-                               Partial:          t.piecePartiallyDownloaded(i),
-                               Availability:     p.availability,
-                               Length:           int64(p.length()),
-                               NumPendingChunks: int(t.pieceNumPendingChunks(i)),
-                               IterPendingChunks: func(f func(types.ChunkSpec)) {
-                                       p.iterUndirtiedChunks(func(cs ChunkSpec) bool {
-                                               f(cs)
-                                               return true
-                                       })
-                               },
+                               Request:           !t.ignorePieceForRequests(i),
+                               Priority:          p.purePriority(),
+                               Partial:           t.piecePartiallyDownloaded(i),
+                               Availability:      p.availability,
+                               Length:            int64(p.length()),
+                               NumPendingChunks:  int(t.pieceNumPendingChunks(i)),
+                               IterPendingChunks: p.iterUndirtiedChunks,
                        })
                }
                t.iterPeers(func(p *Peer) {