code: func (p *cancelReadCloser) closeWithError(err error) {
  	p.pW.CloseWithError(err)
  	p.cancel()
  }
docs: // closeWithError closes the wrapper and its underlying reader. It will
  // cause future calls to Read to return err.