code: func (r *writePump) Work() {
  	defer close(r.closer)
  
  	for {
  		select {
  		case data := <-r.data:
  			r.cnx.Send(data.command, data.channel)
  			if err := r.cnx.Flush(); err != nil {
  				select {
  				case r.errs <- err:
  				case <-r.closer:
  					return
  				}
  			}
  		case <-r.closer:
  			return
  		}
  	}
  }
docs: // Work starts writing to the connection and blocks until it is closed.