code: func (n *autodisc) wait() error {
  	n.once.Do(func() {
  		n.mu.Lock()
  		n.found = n.doit()
  		n.mu.Unlock()
  	})
  	if n.found == nil {
  		return fmt.Errorf("no %s router discovered", n.what)
  	}
  	return nil
  }
docs: // wait blocks until auto-discovery has been performed.