code: func (b *CircularBuffer) Get() interface{} {
  	_ = <-b.avail
  
  	b.lock.Lock()
  	defer b.lock.Unlock()
  
  	if b.start == b.pos {
  		panic("Trying to get from empty buffer")
  	}
  
  	v := b.buffer[b.start]
  	b.buffer[b.start] = nil
  	b.start = (b.start + 1) % b.size
  
  	return v
  }
docs: // Get an item from the beginning of the queue (oldest), blocking.