From 001a3c292b079d492821e6755cf1d495ffbf377e Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Sun, 22 Aug 2021 19:37:47 +0300 Subject: [PATCH] safe UpdateCompletion() on Release() --- server/torr/storage/torrstor/cache.go | 2 +- server/torr/storage/torrstor/diskpiece.go | 2 +- server/torr/storage/torrstor/mempiece.go | 2 +- server/torr/storage/torrstor/piece.go | 10 +++++----- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/server/torr/storage/torrstor/cache.go b/server/torr/storage/torrstor/cache.go index a2522f9..ccdbd0e 100644 --- a/server/torr/storage/torrstor/cache.go +++ b/server/torr/storage/torrstor/cache.go @@ -199,7 +199,7 @@ func (c *Cache) cleanPieces() { rems := (c.filled-c.capacity)/c.pieceLength + 1 for _, p := range remPieces { c.removePiece(p) - c.torrent.Piece(p.Id).UpdateCompletion() + //c.torrent.Piece(p.Id).UpdateCompletion() // safe call in Piece.Release() rems-- if rems <= 0 { utils.FreeOSMemGC() diff --git a/server/torr/storage/torrstor/diskpiece.go b/server/torr/storage/torrstor/diskpiece.go index f716fe7..77e602b 100644 --- a/server/torr/storage/torrstor/diskpiece.go +++ b/server/torr/storage/torrstor/diskpiece.go @@ -85,5 +85,5 @@ func (p *DiskPiece) Release() { os.Remove(p.name) - p.piece.cache.torrent.Piece(p.piece.Id).SetPriority(torrent.PiecePriorityNone) + //p.piece.cache.torrent.Piece(p.piece.Id).SetPriority(torrent.PiecePriorityNone) } diff --git a/server/torr/storage/torrstor/mempiece.go b/server/torr/storage/torrstor/mempiece.go index 6b69724..edefb9f 100644 --- a/server/torr/storage/torrstor/mempiece.go +++ b/server/torr/storage/torrstor/mempiece.go @@ -70,5 +70,5 @@ func (p *MemPiece) Release() { p.piece.Size = 0 p.piece.Complete = false - p.piece.cache.torrent.Piece(p.piece.Id).SetPriority(torrent.PiecePriorityNone) + //p.piece.cache.torrent.Piece(p.piece.Id).SetPriority(torrent.PiecePriorityNone) } diff --git a/server/torr/storage/torrstor/piece.go b/server/torr/storage/torrstor/piece.go index dc8c643..ace950c 100644 --- a/server/torr/storage/torrstor/piece.go +++ b/server/torr/storage/torrstor/piece.go @@ -73,9 +73,9 @@ func (p *Piece) Release() { } else { p.dPiece.Release() } -// if !p.cache.isClosed { -// p.cache.torrent.Piece(p.Id).SetPriority(torrent.PiecePriorityNone) -// // fix remove pieces hash -// p.cache.torrent.Piece(p.Id).UpdateCompletion() -// } + if !p.cache.isClosed { + p.cache.torrent.Piece(p.Id).SetPriority(torrent.PiecePriorityNone) + // fix remove pieces hash and rewind + p.cache.torrent.Piece(p.Id).UpdateCompletion() + } }