code: func (bg *Reader) keep(b Block) {
  	if b == nil || !b.hasData() {
  		return
  	}
  	bg.mu.RLock()
  	defer bg.mu.RUnlock()
  	if bg.cache != nil {
  		bg.cache.Put(b)
  	}
  }
docs: // keep puts the given Block into the cache if it exists.