Matt Joiner
81c47d5705
Upgrade Torrent.GotInfo
2021-10-07 11:50:30 +11:00
Matt Joiner
fd8995dcfd
go fmt ./...
2021-10-05 17:48:52 +11:00
YenForYang
ebb7160599
Inlineable `(*Torrent).Seeding()` ( #626 )
2021-09-15 10:28:14 +10:00
YenForYang
e105d8b57a
Inlineable `(*Torrent).SetDisplayName()` ( #625 )
2021-09-15 10:27:52 +10:00
YenForYang
542970b961
Inlineable `(*Torrent).PieceState()` ( #621 )
2021-09-15 10:14:28 +10:00
YenForYang
d00ba917c0
Inlineable `(*Torrent).AddPeers()` ( #622 )
2021-09-15 10:14:07 +10:00
YenForYang
a0fe0a087d
Inlineable `DownloadPieces()` and `CancelPieces()` ( #623 )
2021-09-15 10:13:46 +10:00
YenForYang
5c440e8929
Simplify (*Torrent).gotMetainfo ( #581 )
2021-09-13 11:41:11 +10:00
Matt Joiner
7378d50a3c
Fix Torrent.Drop to wait for storage close without client lock
2021-09-11 11:39:33 +10:00
Matt Joiner
58483ae399
Make readahead algorithm linear
2021-09-09 22:19:48 +10:00
Matt Joiner
e8b496bee6
Add default sqrt readahead algorithm
2021-09-09 22:19:48 +10:00
Matt Joiner
4912ae2781
Extract common Torrent.newReader
2021-09-09 22:19:48 +10:00
YenForYang
cce8c150c2
PieceStateRuns: reduce copying and make inlineable
...
Just a heads up: using `range` and/or `defer` prevents function inlining. This is fine for infrequently called functions and/or large functions, but for simple public methods like these, I'd assume it's better for them to be inlined.
2021-09-01 14:51:45 +10:00
Matt Joiner
e04c9a13f1
Precompute File.DisplayPath
...
This is an optimization for dir lookups in torrentfs.
2021-08-01 22:01:24 +10:00
Matt Joiner
4ab20f60b6
Improve some lock handling under panics
2021-05-14 15:36:53 +10:00
Matt Joiner
c81da2d5ee
Strictly adher to tracker announce response intervals if a torrent is private
2020-12-09 22:36:57 +11:00
Matt Joiner
cb37a914c1
Rename Peer to PeerInfo, and unexport PeerInfos
2020-05-29 19:44:48 +10:00
Matt Joiner
2f3d41765b
Fix race in Torrent.PeerConns
2020-04-16 17:21:15 +10:00
Matt Joiner
c2210c058c
Fix pending peer counts in transfer tests
...
Also expose number of peers successfully added in some method returns.
2020-04-16 14:09:45 +10:00
Matt Joiner
ea71bf770c
Expose PieceStateRun formatting
2020-02-27 16:42:33 +11:00
Matt Joiner
c855c7a366
Differentiate between storage.ClientImpl{,Closer}
2020-02-21 14:12:44 +11:00
Matt Joiner
dff436f102
Rename connection->PeerConn and fix exports
2020-02-21 11:07:50 +11:00
Matt Joiner
4104880a66
Remove unnecessary locking in Torrent.Piece
2019-12-18 16:49:15 +11:00
Yates
790ba6af3c
use path.utf8 first for some torrent ( #350 )
2019-12-08 20:35:40 +11:00
Matt Joiner
cb1bf0f413
goimports -local
2019-08-21 20:58:40 +10:00
Matt Joiner
499b2d8725
Fix race condition in Torrent.SetDisplayName
2019-03-20 11:01:56 +11:00
Matt Joiner
3920c6c325
Fix race in Torrent.String
2019-03-12 11:22:25 +11:00
Matt Joiner
9ea65d672f
Torrent.String: Quote raw names
2019-02-16 18:33:14 +11:00
Matt Joiner
366ead7d65
Switch to Client read locks for a few methods
2019-01-08 15:46:03 +11:00
Matt Joiner
fc4fab91f5
Switch to goimports import sorting
...
Used to use sortimports, but it's old, and goimports seems to have an opinion now.
2018-11-02 23:12:01 +11:00
Matt Joiner
6dd3b9c12c
Law of Demeter Client.mu
2018-07-25 13:42:28 +10:00
Matt Joiner
f5bd377941
Change pieceIndex to peer_protocol.Integer
2018-07-12 09:15:15 +10:00
Matt Joiner
a1fabaf2f8
Improve Torrent.DownloadPieces documentation
...
Was mentioned in Gitter.
2018-05-18 14:06:28 +10:00
Matt Joiner
37272a391b
Avoid race in test
2018-01-27 14:31:46 +11:00
Matt Joiner
8c6d0440c2
Improve Torrent.BytesCompleted comment
2018-01-27 14:31:46 +11:00
Matt Joiner
52524925d2
Add separate piece priorities, and cache pending pieces
...
Should fix a bug where prioritizing files is not alone sufficient to trigger downloading.
2018-01-25 17:18:36 +11:00
Matt Joiner
0b553b296f
Add File priorities
...
Fixes #220 .
2018-01-21 22:49:12 +11:00
Matt Joiner
87a033e074
Readers obtained from File.NewReader should not readahead into other Files
...
Fixes #221 . Additionally Torrent.length is a pointer and isn't set until the info is available to avoid it defaulting to zero.
2018-01-06 23:15:41 +11:00
Matt Joiner
9b718566ba
Add File.NewReader
...
Fixes #222
2018-01-06 16:37:13 +11:00
Matt Joiner
b3137b1ede
Make type piece public
2017-09-15 19:35:16 +10:00
Matt Joiner
2aa20b3e22
Don't verify data at startup, add Torrent.Piece.VerifyData and Torrent.VerifyData for this purpose
...
This has the side effect of deflaking a lot of tests that race to verify data when a torrent is added.
2017-09-15 19:22:32 +10:00
Matt Joiner
0388ec1eee
Synchronize Torrent.Info
2017-08-29 15:16:53 +10:00
Matt Joiner
cd20c2df36
Fix handling of infohash as hex in Torrent.String
2017-07-01 16:02:06 +10:00
Denis Kuzmenok
8cae956528
added few helper functions: t.PieceBytesMissing, r.CurrentPos, r.SetNonResponsive
2017-06-02 07:46:28 +03:00
Matt Joiner
a959bdd0f8
Revert "Quick fix for missing MetaInfo.Announce everywhere with trackers"
...
This reverts commit b7a8d08bbf
.
2017-02-15 18:40:30 +11:00
Matt Joiner
b7a8d08bbf
Quick fix for missing MetaInfo.Announce everywhere with trackers
2017-02-13 22:28:42 +11:00
Matt Joiner
1d54b1c6d8
Massively reduce CPU when Readers are blocked on unavailable data
2017-02-01 16:28:16 +11:00
Matt Joiner
dc7428db54
Reader.Close: Prefer to lock Client in public method
2016-10-31 19:05:33 +11:00
Matt Joiner
a8e96ce996
When Reader position changes only update piece priorities that may be affected
...
Seems to significantly reduce CPU load reading from torrents with huge piece counts.
2016-10-31 19:00:08 +11:00
Matt Joiner
0e221dbdcd
Optimize piece priorities when reader position changes
...
Gives a decent boost to throughput and reduces a lot of CPU when reading very quickly from Reader.
2016-10-23 16:33:26 +11:00