Sha256: 74ef94514a24265b790bb0f676758de5edf6921fdec0a988eb57320f7954daf2

Contents?: true

Size: 971 Bytes

Versions: 14

Compression:

Stored size: 971 Bytes

Contents

begin
  require 'eventmachine'
rescue LoadError
  require 'rubygems'
  require 'eventmachine'
end

#:stopdoc:

if EM::VERSION < '0.12.2'
    
  def EventMachine::run blk=nil, tail=nil, &block
    @tails ||= []
    tail and @tails.unshift(tail)

    if reactor_running?
      (b = blk || block) and b.call # next_tick(b)
    else
      @conns = {}
      @acceptors = {}
      @timers = {}
      begin
        @reactor_running = true
        initialize_event_machine
        (b = blk || block) and add_timer(0, b)
        run_machine
      ensure
        release_machine
        @reactor_running = false
      end

      until @tails.empty?
        @tails.pop.call
      end
    end
  end

  def EventMachine::fork_reactor &block
    Kernel.fork do
      if self.reactor_running?
        self.stop_event_loop
        self.release_machine
        self.instance_variable_set( '@reactor_running', false )
      end
      self.run block
    end
  end

end

require 'ext/emfork'

Version data entries

14 entries across 14 versions & 5 rubygems

Version Path
adamh-amqp-0.6.3.1 lib/ext/em.rb
brontes3d-amqp-0.6.4.0 lib/ext/em.rb
brontes3d-amqp-0.6.4.1 lib/ext/em.rb
brontes3d-amqp-0.6.4.2 lib/ext/em.rb
brontes3d-amqp-0.6.4.3 lib/ext/em.rb
brontes3d-amqp-0.6.4 lib/ext/em.rb
fotonauts-amqp-0.6.1 lib/ext/em.rb
fotonauts-amqp-0.6.4 lib/ext/em.rb
tmm1-amqp-0.6.0 lib/ext/em.rb
tmm1-amqp-0.6.1 lib/ext/em.rb
tmm1-amqp-0.6.3 lib/ext/em.rb
tmm1-amqp-0.6.4 lib/ext/em.rb
amqp-0.6.4 lib/ext/em.rb
amqp-0.6.0 lib/ext/em.rb