code: func NewBytesPipe() *BytesPipe {
  	bp := &BytesPipe{}
  	bp.buf = append(bp.buf, getBuffer(minCap))
  	bp.wait = sync.NewCond(&bp.mu)
  	return bp
  }
docs: // NewBytesPipe creates new BytesPipe, initialized by specified slice.
  // If buf is nil, then it will be initialized with slice which cap is 64.
  // buf will be adjusted in a way that len(buf) == 0, cap(buf) == cap(buf).