code: func (sw *Switch) AddReactor(name string, reactor Reactor) Reactor {
  	// Validate the reactor.
  	// No two reactors can share the same channel.
  	reactorChannels := reactor.GetChannels()
  	for _, chDesc := range reactorChannels {
  		chID := chDesc.ID
  		if sw.reactorsByCh[chID] != nil {
  			PanicSanity(fmt.Sprintf("Channel %X has multiple reactors %v & %v", chID, sw.reactorsByCh[chID], reactor))
  		}
  		sw.chDescs = append(sw.chDescs, chDesc)
  		sw.reactorsByCh[chID] = reactor
  	}
  	sw.reactors[name] = reactor
  	reactor.SetSwitch(sw)
  	return reactor
  }
docs: // Not goroutine safe.