    # File lib/amqp/utilities/event_loop_helper.rb, line 63
          def self.run(&block)
            if reactor_running?
              EventMachine.run(&block)

              return
            end

            @eventmachine_thread  ||= begin
                                        case self.server_type
                                        when :thin, :goliath, :evented_mongrel then
                                          EventMachine.next_tick { block.call }
                                          Thread.current
                                        when :unicorn, :passenger, :mongrel, :scgi, :webrick, nil then
                                          t = Thread.new { EventMachine.run(&block) }
                                          # give EventMachine reactor some time to start
                                          sleep(0.25)

                                          t
                                        else
                                          t = Thread.new { EventMachine.run(&block) }
                                          # give EventMachine reactor some time to start
                                          sleep(0.25)

                                          t
                                        end
                                      end

            @eventmachine_thread
          end