code: func (b *buffer) eof() error {
  	b.Cond.L.Lock()
  	b.closed = true
  	b.Cond.Signal()
  	b.Cond.L.Unlock()
  	return nil
  }
docs: // eof closes the buffer. Reads from the buffer once all
  // the data has been consumed will receive os.EOF.