code: func (mux *Multiplexer) genericConsumer() {
  	mux.Debug("Generic Consumer started")
  	for {
  		select {
  		case <-mux.Consumer.GetCloseChannel():
  			mux.Debug("Closing Consumer")
  			return
  		case msg := <-mux.Consumer.Config.RecvMessageChan:
  			// 'hash' partitioner messages will be marked
  			mux.propagateMessage(msg)
  		case err := <-mux.Consumer.Config.RecvErrorChan:
  			mux.Error("Received partitionConsumer error ", err)
  		}
  	}
  }
docs: // genericConsumer handles incoming messages to the multiplexer and distributes them among the subscribers.