mirror of
https://github.com/transmission/transmission.git
synced 2025-12-19 18:08:31 +00:00
refactor: faster wishlist (#7027)
* chore: housekeeping * perf: short circuit peer has block check * refactor: track active requests in each respective peer * refactor: swap `ActiveRequests` with new request tracking method * refactor: use bitfield to store active requests per peer * perf: check active request numbers first * refactor: initialise candidate values in constructor * refactor: better naming * refactor: use `find_by_block()` more * refactor: store wishlist mediator in swarm object * test: make it compile * test: update endgame test * test: new test for choke event * test: remove redundant lines * test: new test for request event * test: new test for reject event * refactor: cache block have state in wishlist * test: fix `gotBlockResortsPiece` * fixup! refactor: track active requests in each respective peer * fixup! test: fix `gotBlockResortsPiece` * fix: count webseeds when calculating active requests * build: update xcode project * fix: add missing `candidates_dirty_` checks * chore: remove old `depends-on` comments * fixup! refactor: use bitfield to store active requests per peer * refactor: extract block peer event to separate function * perf: reorder conditions by overhead * perf: check for completed block instead of completed piece * chore: remove duplicated "unrequested piece" check * refactor: merge similar block size sanity check * refactor: use map to store number of requests in wishlist * refactor: add asserts * refactor: flush write buffer as soon as there is new data * refactor: more accurate function naming * fix: account for corrupt pieces in wishlist * fix: account for unaligned blocks in wishlist * Revert "fix: account for unaligned blocks in wishlist" This reverts commit c3fce93cbae49c11d62e26caccedf55c1987aa95. * fixup! refactor: use map to store number of requests in wishlist * fix: account for unaligned blocks in wishlist v2 * chore: add `[[nodiscard]]` * fixup! fix: account for unaligned blocks in wishlist v2 * fix: crash when handshake finishes in the middle of function
This commit is contained in:
@@ -451,8 +451,6 @@
|
||||
ED67FB422B70FCE400D8A037 /* settings.cc in Sources */ = {isa = PBXBuildFile; fileRef = ED67FB402B70FCE400D8A037 /* settings.cc */; };
|
||||
ED67FB432B70FCE400D8A037 /* settings.h in Headers */ = {isa = PBXBuildFile; fileRef = ED67FB412B70FCE400D8A037 /* settings.h */; };
|
||||
ED86936F2ADAE34D00342B1A /* DefaultAppHelper.mm in Sources */ = {isa = PBXBuildFile; fileRef = ED86936E2ADAE34D00342B1A /* DefaultAppHelper.mm */; };
|
||||
ED8A163F2735A8AA000D61F9 /* peer-mgr-active-requests.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8A163B2735A8AA000D61F9 /* peer-mgr-active-requests.h */; };
|
||||
ED8A16402735A8AA000D61F9 /* peer-mgr-active-requests.cc in Sources */ = {isa = PBXBuildFile; fileRef = ED8A163C2735A8AA000D61F9 /* peer-mgr-active-requests.cc */; };
|
||||
ED8A16412735A8AA000D61F9 /* peer-mgr-wishlist.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8A163D2735A8AA000D61F9 /* peer-mgr-wishlist.h */; };
|
||||
ED8A16422735A8AA000D61F9 /* peer-mgr-wishlist.cc in Sources */ = {isa = PBXBuildFile; fileRef = ED8A163E2735A8AA000D61F9 /* peer-mgr-wishlist.cc */; };
|
||||
ED9862972B979AA2002F3035 /* Utils.mm in Sources */ = {isa = PBXBuildFile; fileRef = ED9862962B979AA2002F3035 /* Utils.mm */; };
|
||||
@@ -1370,8 +1368,6 @@
|
||||
ED67FB412B70FCE400D8A037 /* settings.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = settings.h; sourceTree = "<group>"; };
|
||||
ED86936D2ADAE34D00342B1A /* DefaultAppHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DefaultAppHelper.h; sourceTree = "<group>"; };
|
||||
ED86936E2ADAE34D00342B1A /* DefaultAppHelper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DefaultAppHelper.mm; sourceTree = "<group>"; };
|
||||
ED8A163B2735A8AA000D61F9 /* peer-mgr-active-requests.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = "peer-mgr-active-requests.h"; sourceTree = "<group>"; };
|
||||
ED8A163C2735A8AA000D61F9 /* peer-mgr-active-requests.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "peer-mgr-active-requests.cc"; sourceTree = "<group>"; };
|
||||
ED8A163D2735A8AA000D61F9 /* peer-mgr-wishlist.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = "peer-mgr-wishlist.h"; sourceTree = "<group>"; };
|
||||
ED8A163E2735A8AA000D61F9 /* peer-mgr-wishlist.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "peer-mgr-wishlist.cc"; sourceTree = "<group>"; };
|
||||
ED9862952B979AA2002F3035 /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utils.h; sourceTree = "<group>"; };
|
||||
@@ -1862,8 +1858,6 @@
|
||||
A292A6E40DFB45E5004B9C0A /* peer-common.h */,
|
||||
4D36BA650CA2F00800A63CA5 /* peer-io.cc */,
|
||||
4D36BA660CA2F00800A63CA5 /* peer-io.h */,
|
||||
ED8A163C2735A8AA000D61F9 /* peer-mgr-active-requests.cc */,
|
||||
ED8A163B2735A8AA000D61F9 /* peer-mgr-active-requests.h */,
|
||||
ED8A163E2735A8AA000D61F9 /* peer-mgr-wishlist.cc */,
|
||||
ED8A163D2735A8AA000D61F9 /* peer-mgr-wishlist.h */,
|
||||
4D36BA680CA2F00800A63CA5 /* peer-mgr.cc */,
|
||||
@@ -2402,7 +2396,6 @@
|
||||
CCEBA596277340F6DF9F4482 /* session-alt-speeds.h in Headers */,
|
||||
BEFC1E4E0C07861A00B0BB3C /* inout.h in Headers */,
|
||||
BEFC1E520C07861A00B0BB3C /* open-files.h in Headers */,
|
||||
ED8A163F2735A8AA000D61F9 /* peer-mgr-active-requests.h in Headers */,
|
||||
BEFC1E550C07861A00B0BB3C /* completion.h in Headers */,
|
||||
BEFC1E570C07861A00B0BB3C /* clients.h in Headers */,
|
||||
A2BE9C530C1E4AF7002D16E6 /* makemeta.h in Headers */,
|
||||
@@ -3161,7 +3154,6 @@
|
||||
EDBAAC8E29E486C200D9495F /* ip-cache.cc in Sources */,
|
||||
BEFC1E2D0C07861A00B0BB3C /* port-forwarding-upnp.cc in Sources */,
|
||||
A2AAB65C0DE0CF6200E04DDA /* rpc-server.cc in Sources */,
|
||||
ED8A16402735A8AA000D61F9 /* peer-mgr-active-requests.cc in Sources */,
|
||||
BEFC1E2F0C07861A00B0BB3C /* session.cc in Sources */,
|
||||
CCEBA596277340F6DF9F4480 /* session-alt-speeds.cc in Sources */,
|
||||
BEFC1E320C07861A00B0BB3C /* torrent.cc in Sources */,
|
||||
|
||||
Reference in New Issue
Block a user