Move File.State lock to top of function

This commit is contained in:
Matt Joiner 2017-05-26 12:59:52 +10:00
parent 5bde8de95d
commit 43a573d46f
1 changed files with 2 additions and 2 deletions

View File

@ -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