safe readers check

This commit is contained in:
nikk gitanes
2021-08-20 01:15:29 +03:00
parent ab9738868a
commit c1fcbd6f11

View File

@@ -126,7 +126,7 @@ func (c *Cache) AdjustRA(readahead int64) {
if settings.BTsets.CacheSize == 0 { if settings.BTsets.CacheSize == 0 {
c.capacity = readahead * 3 c.capacity = readahead * 3
} }
if len(c.readers) > 0 { if c.Readers() > 0 {
c.muReaders.Lock() c.muReaders.Lock()
for r, _ := range c.readers { for r, _ := range c.readers {
r.SetReadahead(readahead) r.SetReadahead(readahead)
@@ -158,7 +158,7 @@ func (c *Cache) GetState() *state.CacheState {
readersState := make([]*state.ReaderState, 0) readersState := make([]*state.ReaderState, 0)
c.muReaders.Lock() c.muReaders.Lock()
if len(c.readers) > 0 { if c.Readers() > 0 {
for r, _ := range c.readers { for r, _ := range c.readers {
rng := r.getPiecesRange() rng := r.getPiecesRange()
pc := r.getReaderPiece() pc := r.getReaderPiece()
@@ -255,7 +255,6 @@ func (c *Cache) getRemPieces() []*Piece {
count = 40 count = 40
} }
limit := 0 limit := 0
for i := readerPos; i < end && limit < count; i++ { for i := readerPos; i < end && limit < count; i++ {
if !c.pieces[i].Complete { if !c.pieces[i].Complete {
if i == readerPos { if i == readerPos {