v2.0.0-alpha.unstable.rev0192
Pre-release
Pre-release
alanmcgovern
released this
02 Apr 11:23
·
672 commits
to master
since this release
General
- Small performance improvements to some Bitfield methods
BitField
is now immutable. If you need a mutable version use aMutableBitfield.ctor(BitField)
, orMutableBitfield.From (BitField)
to create a mutable version of a bitfield. This is useful for custom piece pickers.- Optimised how partial download progress (the amount of data which will be downloaded after excluding files marked as DoNotDownload) is calculated.
- Small change to how pieces are requested from a peer. Additional requests are batched when the number of pieces being requested gets larger.
- Removed a confusing parameter from IPieceRequester. There was no need to include a BitField in the parameters as it wasn't used for anything meaningful.
- ITorrentFile.Priority is now a readonly property publicly. If you want to change the priority for a file you should call
TorrentManager.SetFilePriorityAsync (TorrentFile, Priority)
. This is a threadsafe way to update the priority, and allows internal state to be updated immediately, rather than having to continually poll for changes. - Small perf improvement when bootstrapping the DHT table from a list of cached nodes.
- Fixed a cosmetic bug where mapping a PieceIndex to the corresponding ITorrentFile could return the wrong File in some scenarios. The impact was that the first or last piece for a given file may never be set to true, so the progress reported by
ITorrentFileInfo.BitField
would be < 100% even after the torrent entered Seeding mode after downloading all data. - Fix submitted by @phil-scott-78 to ensure web seeds with invalid Uris are gracefully discarded.