]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Configurable hashers amount per torrent (#867)
authorAlex Sharov <AskAlexSharov@gmail.com>
Wed, 13 Sep 2023 11:15:36 +0000 (18:15 +0700)
committerGitHub <noreply@github.com>
Wed, 13 Sep 2023 11:15:36 +0000 (21:15 +1000)
.gitignore
config.go
torrent.go

index d92c6d5bfd4a881ef48dd9bfd83aaee1415bcb21..0c15585de6c8e7a2a3445e788436ba04dac4dc66 100644 (file)
@@ -1,3 +1,5 @@
 .idea
 *-run.gob
 .envrc*
+.DS_Store
+go.work*
\ No newline at end of file
index 0c029a7e2c3e4ba0b2bf98008ebaaad1e9225fb0..e2d0ea1ebec230cce1c7fa50e67ff5fc88f8006d 100644 (file)
--- a/config.go
+++ b/config.go
@@ -188,6 +188,8 @@ type ClientConfig struct {
        ICEServers []string
 
        DialRateLimiter *rate.Limiter
+
+       PieceHashersPerTorrent int // default: 2
 }
 
 func (cfg *ClientConfig) SetListenAddr(addr string) *ClientConfig {
@@ -225,13 +227,14 @@ func NewDefaultClientConfig() *ClientConfig {
                        Preferred:        true,
                        RequirePreferred: false,
                },
-               CryptoSelector:        mse.DefaultCryptoSelector,
-               CryptoProvides:        mse.AllSupportedCrypto,
-               ListenPort:            42069,
-               Extensions:            defaultPeerExtensionBytes(),
-               AcceptPeerConnections: true,
-               MaxUnverifiedBytes:    64 << 20,
-               DialRateLimiter:       rate.NewLimiter(10, 10),
+               CryptoSelector:         mse.DefaultCryptoSelector,
+               CryptoProvides:         mse.AllSupportedCrypto,
+               ListenPort:             42069,
+               Extensions:             defaultPeerExtensionBytes(),
+               AcceptPeerConnections:  true,
+               MaxUnverifiedBytes:     64 << 20,
+               DialRateLimiter:        rate.NewLimiter(10, 10),
+               PieceHashersPerTorrent: 2,
        }
        cc.DhtStartingNodes = func(network string) dht.StartingNodesGetter {
                return func() ([]dht.Addr, error) { return dht.GlobalBootstrapAddrs(network) }
index 5f6ddf394e5684282bf4a520f7e9c5583aba6256..8b4745218864d81bb19ffda48140aa245f4cc044 100644 (file)
@@ -2251,7 +2251,7 @@ func (t *Torrent) onIncompletePiece(piece pieceIndex) {
 }
 
 func (t *Torrent) tryCreateMorePieceHashers() {
-       for !t.closed.IsSet() && t.activePieceHashes < 2 && t.tryCreatePieceHasher() {
+       for !t.closed.IsSet() && t.activePieceHashes < t.cl.config.PieceHashersPerTorrent && t.tryCreatePieceHasher() {
        }
 }