code: func (l *Log) getBuffer() *buffer {
  	l.freeListMu.Lock()
  	b := l.freeList
  	if b != nil {
  		l.freeList = b.next
  	}
  	l.freeListMu.Unlock()
  	if b == nil {
  		b = new(buffer)
  	} else {
  		b.next = nil
  		b.Reset()
  	}
  	return b
  }
docs: // getBuffer returns a new, ready-to-use buffer.