code: func BroadcastWaitForResponse(responses chan common.Status, errs chan error) (common.Status, error) {
  	var status common.Status
  	allErrs := make([]error, 0)
  
  read:
  	for {
  		select {
  		case s, ok := <-responses:
  			if !ok {
  				break read
  			}
  			status = s
  		case e := <-errs:
  			allErrs = append(allErrs, e)
  		}
  	}
  
  	// drain remaining errors
  	for i := 0; i < len(errs); i++ {
  		e := <-errs
  		allErrs = append(allErrs, e)
  	}
  	// close errs channel since we have read all of them
  	close(errs)
  	return status, toError(allErrs)
  }
docs: // broadcastWaitForResponse reads from response and errs chans until responses chan is closed