cl.Close()
}()
if cfg.UploadRateLimiter == nil {
- cl.uploadLimit = rate.NewLimiter(rate.Inf, 0)
+ cl.uploadLimit = unlimited
} else {
cl.uploadLimit = cfg.UploadRateLimiter
}
if cfg.DownloadRateLimiter == nil {
- cl.downloadLimit = rate.NewLimiter(rate.Inf, 0)
+ cl.downloadLimit = unlimited
} else {
cl.downloadLimit = cfg.DownloadRateLimiter
}
import (
"io"
+ "net"
"sync"
"testing"
"time"
}
func BenchmarkConnectionMainReadLoop(b *testing.B) {
- cl := &Client{}
+ cl := &Client{
+ downloadLimit: unlimited,
+ }
ts := &torrentStorage{}
t := &Torrent{
cl: cl,
}))
t.setChunkSize(defaultChunkSize)
t.pendingPieces.Set(0, PiecePriorityNormal.BitmapPriority())
- r, w := io.Pipe()
- cn := &connection{
- t: t,
- r: r,
- }
+ r, w := net.Pipe()
+ cn := cl.newConnection(r)
+ cn.setTorrent(t)
mrlErr := make(chan error)
cl.mu.Lock()
go func() {
"github.com/anacrolix/missinggo"
"github.com/anacrolix/torrent/metainfo"
pp "github.com/anacrolix/torrent/peer_protocol"
+ "golang.org/x/time/rate"
)
type chunkSpec struct {
}
return ret
}
+
+var unlimited = rate.NewLimiter(rate.Inf, 0)