code: func (m *ManagerImpl) Stop() error {
  	m.mutex.Lock()
  	defer m.mutex.Unlock()
  	for _, eI := range m.endpoints {
  		eI.e.stop()
  	}
  
  	if m.server == nil {
  		return nil
  	}
  	m.server.Stop()
  	m.wg.Wait()
  	m.server = nil
  	return nil
  }
docs: // Stop is the function that can stop the gRPC server.
  // Can be called concurrently, more than once, and is safe to call
  // without a prior Start.