code: func (wrself *WriterToReaderAdapter) Write(data []byte) (int, error) {
  	if len(data) == 0 {
  		return 0, nil
  	}
  	wrself.workChan <- &data
  	var err error
  	select {
  	case err = <-wrself.errChan:
  	default:
  	}
  	receipt := <-wrself.doneWorkChan
  	if receipt != &data {
  		panic("Only one thread allowed to use io.Writer")
  	}
  	return len(data), err
  }
docs: // this is the public Write interface that presents any data to the
  // companion goroutine (copyDataToOutput)
  // This function is unbuffered and blocks until the companion goroutine
  // consumes the data and returns a receipt.
  // This means that there are no extraneous allocations since the receipt is the data
  // that was consumed (sent) and the Write can now return