diff --git a/server/torr/storage/torrstor/cache.go b/server/torr/storage/torrstor/cache.go index 2654df7..d7b3f31 100644 --- a/server/torr/storage/torrstor/cache.go +++ b/server/torr/storage/torrstor/cache.go @@ -157,8 +157,9 @@ func (c *Cache) GetState() *state.CacheState { } readersState := make([]*state.ReaderState, 0) - c.muReaders.Lock() + if c.Readers() > 0 { + c.muReaders.Lock() for r, _ := range c.readers { rng := r.getPiecesRange() pc := r.getReaderPiece() @@ -168,8 +169,8 @@ func (c *Cache) GetState() *state.CacheState { Reader: pc, }) } + c.muReaders.Unlock() } - c.muReaders.Unlock() c.filled = fill cState.Capacity = c.capacity