code: func (bp *BytesPipe) CloseWithError(err error) error {
  	bp.mu.Lock()
  	if err != nil {
  		bp.closeErr = err
  	} else {
  		bp.closeErr = io.EOF
  	}
  	bp.wait.Broadcast()
  	bp.mu.Unlock()
  	return nil
  }
docs: // CloseWithError causes further reads from a BytesPipe to return immediately.