Move File.State lock to top of function
This commit is contained in:
parent
5bde8de95d
commit
43a573d46f
4
file.go
4
file.go
|
@ -54,6 +54,8 @@ type FilePieceState struct {
|
||||||
|
|
||||||
// Returns the state of pieces in this file.
|
// Returns the state of pieces in this file.
|
||||||
func (f *File) State() (ret []FilePieceState) {
|
func (f *File) State() (ret []FilePieceState) {
|
||||||
|
f.t.cl.mu.RLock()
|
||||||
|
defer f.t.cl.mu.RUnlock()
|
||||||
pieceSize := int64(f.t.usualPieceSize())
|
pieceSize := int64(f.t.usualPieceSize())
|
||||||
off := f.offset % pieceSize
|
off := f.offset % pieceSize
|
||||||
remaining := f.length
|
remaining := f.length
|
||||||
|
@ -65,9 +67,7 @@ func (f *File) State() (ret []FilePieceState) {
|
||||||
if len1 > remaining {
|
if len1 > remaining {
|
||||||
len1 = remaining
|
len1 = remaining
|
||||||
}
|
}
|
||||||
f.t.cl.mu.RLock()
|
|
||||||
ps := f.t.pieceState(i)
|
ps := f.t.pieceState(i)
|
||||||
f.t.cl.mu.RUnlock()
|
|
||||||
ret = append(ret, FilePieceState{len1, ps})
|
ret = append(ret, FilePieceState{len1, ps})
|
||||||
off = 0
|
off = 0
|
||||||
remaining -= len1
|
remaining -= len1
|
||||||
|
|
Loading…
Reference in New Issue