fix crash on preload

This commit is contained in:
yourok
2018-10-04 21:33:32 +03:00
parent b376c50fcb
commit 5a30c8428b
2 changed files with 13 additions and 6 deletions

View File

@@ -81,6 +81,18 @@ func (b *BufferPool) ReleaseBuffer(index int) {
} }
} }
func (b *BufferPool) Used() map[int]struct{} {
used := make(map[int]struct{})
b.mu.Lock()
defer b.mu.Unlock()
for _, b := range b.buffs {
if b.used {
used[b.pieceId] = struct{}{}
}
}
return used
}
func (b *BufferPool) Len() int { func (b *BufferPool) Len() int {
return b.frees return b.frees
} }

View File

@@ -149,12 +149,7 @@ func (c *Cache) getRemPieces() []*Piece {
pieces := make([]*Piece, 0) pieces := make([]*Piece, 0)
fill := int64(0) fill := int64(0)
loading := 0 loading := 0
used := make(map[int]struct{}) used := c.bufferPull.Used()
for _, b := range c.bufferPull.buffs {
if b.used {
used[b.pieceId] = struct{}{}
}
}
for u := range used { for u := range used {
v := c.pieces[u] v := c.pieces[u]
if v.Size > 0 { if v.Size > 0 {