def run
      setup_queues
      setup_procs.each(&:call)

      Waiter.wait_until_signaled

      stop
    end
Run the main event loop. The consumers will be set up with queues, and
process the messages in their respective queues indefinitely. This method
never returns.