Remove unnecessary locking in Torrent.Piece
This commit is contained in:
parent
5f1d937b62
commit
4104880a66
7
t.go
7
t.go
|
@ -15,8 +15,7 @@ func (t *Torrent) InfoHash() metainfo.Hash {
|
|||
return t.infoHash
|
||||
}
|
||||
|
||||
// Returns a channel that is closed when the info (.Info()) for the torrent
|
||||
// has become available.
|
||||
// Returns a channel that is closed when the info (.Info()) for the torrent has become available.
|
||||
func (t *Torrent) GotInfo() <-chan struct{} {
|
||||
t.cl.lock()
|
||||
defer t.cl.unlock()
|
||||
|
@ -243,7 +242,5 @@ func (t *Torrent) AddTrackers(announceList [][]string) {
|
|||
}
|
||||
|
||||
func (t *Torrent) Piece(i pieceIndex) *Piece {
|
||||
t.cl.lock()
|
||||
defer t.cl.unlock()
|
||||
return &t.pieces[i]
|
||||
return t.piece(i)
|
||||
}
|
||||
|
|
|
@ -36,7 +36,8 @@ func (t *Torrent) chunkIndexSpec(chunkIndex pp.Integer, piece pieceIndex) chunkS
|
|||
return chunkIndexSpec(chunkIndex, t.pieceLength(piece), t.chunkSize)
|
||||
}
|
||||
|
||||
// Maintains state of torrent within a Client.
|
||||
// Maintains state of torrent within a Client. Many methods should not be called before the info is
|
||||
// available, see .Info and .GotInfo.
|
||||
type Torrent struct {
|
||||
// Torrent-level aggregate statistics. First in struct to ensure 64-bit
|
||||
// alignment. See #262.
|
||||
|
@ -1698,7 +1699,8 @@ func (t *Torrent) queuePieceCheck(pieceIndex pieceIndex) {
|
|||
t.tryCreateMorePieceHashers()
|
||||
}
|
||||
|
||||
// Forces all the pieces to be re-hashed. See also Piece.VerifyData.
|
||||
// Forces all the pieces to be re-hashed. See also Piece.VerifyData. This should not be called
|
||||
// before the Info is available.
|
||||
func (t *Torrent) VerifyData() {
|
||||
for i := pieceIndex(0); i < t.NumPieces(); i++ {
|
||||
t.Piece(i).VerifyData()
|
||||
|
|
Loading…
Reference in New Issue