diff --git a/bencode/bench_test.go b/bencode/bench_test.go index f5fb0a7a..d6faafb7 100644 --- a/bencode/bench_test.go +++ b/bencode/bench_test.go @@ -6,8 +6,6 @@ import ( "testing" "github.com/anacrolix/dht/v2/krpc" - "github.com/bradfitz/iter" - "github.com/anacrolix/torrent/bencode" ) @@ -40,7 +38,7 @@ func BenchmarkMarshalThenUnmarshalKrpcMsg(tb *testing.B) { } tb.ReportAllocs() tb.ResetTimer() - for range iter.N(tb.N) { + for i := 0; i < tb.N; i += 1 { marshalAndUnmarshal(tb, orig) } } diff --git a/client_test.go b/client_test.go index c626ff89..f170c9e3 100644 --- a/client_test.go +++ b/client_test.go @@ -12,7 +12,6 @@ import ( "testing/iotest" "time" - "github.com/bradfitz/iter" "github.com/frankban/quicktest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -131,7 +130,7 @@ func TestAddDropManyTorrents(t *testing.T) { cl, err := NewClient(TestingConfig(t)) require.NoError(t, err) defer cl.Close() - for i := range iter.N(1000) { + for i := 0; i < 1000; i += 1 { var spec TorrentSpec binary.PutVarint(spec.InfoHash[:], int64(i)) tt, new, err := cl.AddTorrentSpec(&spec) @@ -203,7 +202,7 @@ func BenchmarkAddLargeTorrent(b *testing.B) { require.NoError(b, err) defer cl.Close() b.ReportAllocs() - for range iter.N(b.N) { + for i := 0; i < b.N; i += 1 { t, err := cl.AddTorrentFromFile("testdata/bootstrap.dat.torrent") if err != nil { b.Fatal(err) @@ -354,7 +353,7 @@ func TestTorrentDroppedBeforeGotInfo(t *testing.T) { } func writeTorrentData(ts *storage.Torrent, info metainfo.Info, b []byte) { - for i := range iter.N(info.NumPieces()) { + for i := 0; i < info.NumPieces(); i += 1 { p := info.Piece(i) ts.Piece(p).WriteAt(b[p.Offset():p.Offset()+p.Length()], 0) } @@ -609,7 +608,7 @@ func TestSetMaxEstablishedConn(t *testing.T) { cfg := TestingConfig(t) cfg.DisableAcceptRateLimiting = true cfg.DropDuplicatePeerIds = true - for i := range iter.N(3) { + for i := 0; i < 3; i += 1 { cl, err := NewClient(cfg) require.NoError(t, err) defer cl.Close() diff --git a/cmd/torrent-metainfo-pprint/main.go b/cmd/torrent-metainfo-pprint/main.go index 16f2b303..cfecc224 100644 --- a/cmd/torrent-metainfo-pprint/main.go +++ b/cmd/torrent-metainfo-pprint/main.go @@ -11,7 +11,6 @@ import ( "github.com/anacrolix/envpprof" "github.com/anacrolix/tagflag" - "github.com/bradfitz/iter" "github.com/anacrolix/torrent/metainfo" ) @@ -55,7 +54,7 @@ func processReader(r io.Reader) error { } if flags.PieceHashes { d["PieceHashes"] = func() (ret []string) { - for i := range iter.N(info.NumPieces()) { + for i, numPieces := 0, info.NumPieces(); i < numPieces; i += 1 { ret = append(ret, hex.EncodeToString(info.Pieces[i*20:(i+1)*20])) } return diff --git a/cmd/torrent-verify/main.go b/cmd/torrent-verify/main.go index 0b7f2154..47c7f3a3 100644 --- a/cmd/torrent-verify/main.go +++ b/cmd/torrent-verify/main.go @@ -10,7 +10,6 @@ import ( "path/filepath" "github.com/anacrolix/tagflag" - "github.com/bradfitz/iter" "github.com/edsrzf/mmap-go" "github.com/anacrolix/torrent/metainfo" @@ -47,7 +46,7 @@ func verifyTorrent(info *metainfo.Info, root string) error { span.Append(mm) } span.InitIndex() - for i := range iter.N(info.NumPieces()) { + for i, numPieces := 0, info.NumPieces(); i < numPieces; i += 1 { p := info.Piece(i) hash := sha1.New() _, err := io.Copy(hash, io.NewSectionReader(span, p.Offset(), p.Length())) diff --git a/iplist/iplist_test.go b/iplist/iplist_test.go index 8062f09b..4e36e0ae 100644 --- a/iplist/iplist_test.go +++ b/iplist/iplist_test.go @@ -7,7 +7,6 @@ import ( "strings" "testing" - "github.com/bradfitz/iter" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -41,7 +40,7 @@ func init() { func TestIPv4RangeLen(t *testing.T) { ranges, _ := sampleRanges(t) - for i := range iter.N(3) { + for i := 0; i < 3; i += 1 { if len(ranges[i].First) != 4 { t.FailNow() } diff --git a/misc_test.go b/misc_test.go index 5190e4f4..d8c0c7aa 100644 --- a/misc_test.go +++ b/misc_test.go @@ -25,7 +25,7 @@ func TestTorrentOffsetRequest(t *testing.T) { func BenchmarkIterBitmapsDistinct(t *testing.B) { t.ReportAllocs() - for range iter.N(t.N) { + for i := 0; i < t.N; i += 1 { var skip, first, second bitmap.Bitmap skip.Add(1) first.Add(1, 0, 3) diff --git a/mse/mse_test.go b/mse/mse_test.go index f13c259f..33fd9c5e 100644 --- a/mse/mse_test.go +++ b/mse/mse_test.go @@ -11,7 +11,6 @@ import ( "testing" _ "github.com/anacrolix/envpprof" - "github.com/bradfitz/iter" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -114,7 +113,7 @@ func TestHandshakeSelectPlaintext(t *testing.T) { } func BenchmarkHandshakeDefault(b *testing.B) { - for range iter.N(b.N) { + for i := 0; i < b.N; i += 1 { allHandshakeTests(b, AllSupportedCrypto, DefaultCryptoSelector) } } @@ -171,7 +170,7 @@ func benchmarkStream(t *testing.B, crypto CryptoMethod) { t.StopTimer() t.SetBytes(int64(len(ia) + len(a) + len(b))) t.ResetTimer() - for range iter.N(t.N) { + for i := 0; i < t.N; i += 1 { ac, bc := net.Pipe() ar := make([]byte, len(b)) br := make([]byte, len(ia)+len(a)) @@ -239,7 +238,7 @@ func BenchmarkPipeRC4(t *testing.B) { b := make([]byte, len(a)) t.SetBytes(int64(len(a))) t.ResetTimer() - for range iter.N(t.N) { + for i := 0; i < t.N; i += 1 { n, _ = w.Write(a) if n != len(a) { t.FailNow() @@ -256,7 +255,7 @@ func BenchmarkPipeRC4(t *testing.B) { func BenchmarkSkeysReceive(b *testing.B) { var skeys [][]byte - for range iter.N(100000) { + for i := 0; i < 100000; i += 1 { skeys = append(skeys, make([]byte, 20)) } fillRand(b, skeys...) @@ -264,7 +263,7 @@ func BenchmarkSkeysReceive(b *testing.B) { //c := qt.New(b) b.ReportAllocs() b.ResetTimer() - for range iter.N(b.N) { + for i := 0; i < b.N; i += 1 { initiator, receiver := net.Pipe() go func() { _, _, err := InitiateHandshake(initiator, initSkey, nil, AllSupportedCrypto) diff --git a/peer_protocol/decoder_test.go b/peer_protocol/decoder_test.go index 33909cdc..2f94e0ee 100644 --- a/peer_protocol/decoder_test.go +++ b/peer_protocol/decoder_test.go @@ -6,7 +6,6 @@ import ( "sync" "testing" - "github.com/bradfitz/iter" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -46,7 +45,7 @@ func BenchmarkDecodePieces(t *testing.B) { }, }, } - for range iter.N(t.N) { + for i := 0; i < t.N; i += 1 { var msg Message require.NoError(t, d.Decode(&msg)) // WWJD diff --git a/peerconn.go b/peerconn.go index fda3b95f..4aee30fd 100644 --- a/peerconn.go +++ b/peerconn.go @@ -784,9 +784,9 @@ func (cn *PeerConn) peerSentBitfield(bf []bool) error { func (cn *Peer) onPeerHasAllPieces() { t := cn.t if t.haveInfo() { - pp := cn.newPeerPieces() - for i := range iter.N(t.numPieces()) { - if !pp.Contains(bitmap.BitIndex(i)) { + npp, pc := cn.newPeerPieces(), t.numPieces() + for i := 0; i < pc; i += 1 { + if !npp.Contains(bitmap.BitIndex(i)) { t.incPieceAvailability(i) } } diff --git a/peerconn_test.go b/peerconn_test.go index c28bc632..8ad5c737 100644 --- a/peerconn_test.go +++ b/peerconn_test.go @@ -7,7 +7,6 @@ import ( "testing" "github.com/anacrolix/missinggo/pubsub" - "github.com/bradfitz/iter" "github.com/frankban/quicktest" "github.com/stretchr/testify/require" @@ -128,7 +127,7 @@ func BenchmarkConnectionMainReadLoop(b *testing.B) { go func() { defer w.Close() ts.writeSem.Lock() - for range iter.N(b.N) { + for i := 0; i < b.N; i += 1 { cl.lock() // The chunk must be written to storage everytime, to ensure the // writeSem is unlocked. diff --git a/request-strategy/order_test.go b/request-strategy/order_test.go index d37b0423..89a85085 100644 --- a/request-strategy/order_test.go +++ b/request-strategy/order_test.go @@ -4,7 +4,6 @@ import ( "math" "testing" - "github.com/bradfitz/iter" qt "github.com/frankban/quicktest" pp "github.com/anacrolix/torrent/peer_protocol" @@ -16,7 +15,7 @@ func r(i pieceIndex, begin int) Request { func chunkIterRange(end int) func(func(ChunkSpec)) { return func(f func(ChunkSpec)) { - for offset := range iter.N(end) { + for offset := 0; offset < end; offset += 1 { f(ChunkSpec{pp.Integer(offset), 1}) } } diff --git a/rlreader_test.go b/rlreader_test.go index 0391c619..6bf25c43 100644 --- a/rlreader_test.go +++ b/rlreader_test.go @@ -8,7 +8,6 @@ import ( "testing" "time" - "github.com/bradfitz/iter" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "golang.org/x/time/rate" @@ -59,7 +58,7 @@ func TestRateLimitReaders(t *testing.T) { } reads := make(chan read) done := make(chan struct{}) - for range iter.N(numReaders) { + for i := 0; i < numReaders; i += 1 { r, w := io.Pipe() ws = append(ws, w) cs = append(cs, w) @@ -99,7 +98,7 @@ func TestRateLimitReaders(t *testing.T) { }() written := 0 go func() { - for range iter.N(writeRounds) { + for i := 0; i < writeRounds; i += 1 { err := writeN(ws, bytesPerRound) if err != nil { log.Printf("error writing: %s", err) diff --git a/storage/test/bench-piece-mark-complete.go b/storage/test/bench-piece-mark-complete.go index 6e04702b..e800e6a9 100644 --- a/storage/test/bench-piece-mark-complete.go +++ b/storage/test/bench-piece-mark-complete.go @@ -8,7 +8,6 @@ import ( "github.com/anacrolix/torrent/metainfo" "github.com/anacrolix/torrent/storage" - "github.com/bradfitz/iter" qt "github.com/frankban/quicktest" ) @@ -41,7 +40,7 @@ func BenchmarkPieceMarkComplete( readData := make([]byte, pieceSize) b.SetBytes(int64(numPieces) * pieceSize) oneIter := func() { - for pieceIndex := range iter.N(numPieces) { + for pieceIndex := 0; pieceIndex < numPieces; pieceIndex += 1 { pi := tw.Piece(info.Piece(pieceIndex)) rand.Read(data) b.StartTimer() @@ -76,12 +75,13 @@ func BenchmarkPieceMarkComplete( } // Fill the cache if capacity > 0 { - for range iter.N(int((capacity + info.TotalLength() - 1) / info.TotalLength())) { + iterN := int((capacity + info.TotalLength() - 1) / info.TotalLength()) + for i := 0; i < iterN; i += 1 { oneIter() } } b.ResetTimer() - for range iter.N(b.N) { + for i := 0; i < b.N; i += 1 { oneIter() } } diff --git a/torrent.go b/torrent.go index 0481d564..6f4730e2 100644 --- a/torrent.go +++ b/torrent.go @@ -21,7 +21,6 @@ import ( "github.com/anacrolix/chansync" "github.com/anacrolix/dht/v2" "github.com/anacrolix/log" - "github.com/anacrolix/missinggo/iter" "github.com/anacrolix/missinggo/perf" "github.com/anacrolix/missinggo/pubsub" "github.com/anacrolix/missinggo/slices" @@ -2237,7 +2236,7 @@ func (t *Torrent) addWebSeed(url string) { activeRequests: make(map[Request]webseed.Request, maxRequests), } ws.requesterCond.L = t.cl.locker() - for range iter.N(maxRequests) { + for i := 0; i < maxRequests; i += 1 { go ws.requester() } for _, f := range t.callbacks().NewPeer { diff --git a/torrent_test.go b/torrent_test.go index 053ed5d1..bd762c9c 100644 --- a/torrent_test.go +++ b/torrent_test.go @@ -10,7 +10,6 @@ import ( "github.com/anacrolix/missinggo/v2" "github.com/anacrolix/missinggo/v2/bitmap" - "github.com/bradfitz/iter" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -91,7 +90,7 @@ func BenchmarkUpdatePiecePriorities(b *testing.B) { Length: pieceLength * numPieces, })) assert.EqualValues(b, 13410, t.numPieces()) - for range iter.N(7) { + for i := 0; i < 7; i += 1 { r := t.NewReader() r.SetReadahead(32 << 20) r.Seek(3500000, io.SeekStart) @@ -101,7 +100,7 @@ func BenchmarkUpdatePiecePriorities(b *testing.B) { t._completedPieces.Add(bitmap.BitIndex(i)) } t.DownloadPieces(0, t.numPieces()) - for range iter.N(b.N) { + for i := 0; i < b.N; i += 1 { t.updateAllPiecePriorities() } }