code: func (p *partitions) topologyChanged(_ *nats.Conn) {
  	p.Lock()
  	defer p.Unlock()
  	if p.isShutdown {
  		return
  	}
  	// Let's wait before checking (sending the list and waiting for a reply)
  	// so that the new NATS Server has a chance to send its local
  	// subscriptions to the rest of the cluster. That will reduce the risk
  	// of missing the reply from the new server.
  	time.Sleep(partitionsWaitOnChange)
  	if err := p.checkChannelsUniqueInCluster(); err != nil {
  		// If server is started from command line, the Fatalf
  		// call will cause the process to exit. If the server
  		// is run programmatically and no logger has been set
  		// we need to exit with the panic.
  		p.s.log.Fatalf("Partitioning error: %v", err)
  		// For tests
  		if partitionsNoPanic {
  			p.s.setLastError(err)
  			return
  		}
  		panic(err)
  	}
  }
docs: // Topology changed. Sends the list of channels.