]> Sergey Matveev's repositories - btrtrc.git/blobdiff - file.go
Add holepunching stats and tests
[btrtrc.git] / file.go
diff --git a/file.go b/file.go
index 01515187d0d1aa11f03e3efa8ae3e59bebeb35be..ed2f5da9ced0e74c87a903d1b160a3793331701d 100644 (file)
--- a/file.go
+++ b/file.go
@@ -86,7 +86,7 @@ func fileBytesLeft(
 }
 
 func (f *File) bytesLeft() (left int64) {
-       return fileBytesLeft(int64(f.t.usualPieceSize()), f.firstPieceIndex(), f.endPieceIndex(), f.offset, f.length, &f.t._completedPieces)
+       return fileBytesLeft(int64(f.t.usualPieceSize()), f.BeginPieceIndex(), f.EndPieceIndex(), f.offset, f.length, &f.t._completedPieces)
 }
 
 // The relative file path for a multi-file torrent, and the torrent name for a
@@ -149,21 +149,21 @@ func (f *File) SetPriority(prio piecePriority) {
        f.t.cl.lock()
        if prio != f.prio {
                f.prio = prio
-               f.t.updatePiecePriorities(f.firstPieceIndex(), f.endPieceIndex(), "File.SetPriority")
+               f.t.updatePiecePriorities(f.BeginPieceIndex(), f.EndPieceIndex(), "File.SetPriority")
        }
        f.t.cl.unlock()
 }
 
 // Returns the priority per File.SetPriority.
 func (f *File) Priority() (prio piecePriority) {
-       f.t.cl.lock()
+       f.t.cl.rLock()
        prio = f.prio
-       f.t.cl.unlock()
+       f.t.cl.rUnlock()
        return
 }
 
 // Returns the index of the first piece containing data for the file.
-func (f *File) firstPieceIndex() pieceIndex {
+func (f *File) BeginPieceIndex() int {
        if f.t.usualPieceSize() == 0 {
                return 0
        }
@@ -171,7 +171,7 @@ func (f *File) firstPieceIndex() pieceIndex {
 }
 
 // Returns the index of the piece after the last one containing data for the file.
-func (f *File) endPieceIndex() pieceIndex {
+func (f *File) EndPieceIndex() int {
        if f.t.usualPieceSize() == 0 {
                return 0
        }