class EventMachine::Reactor

def run

def run
  raise Error.new( "already running" ) if @running
  @running = true
  begin
    open_loopbreaker
    loop {
      @current_loop_time = Time.now
      break if @stop_scheduled
      run_timers
      break if @stop_scheduled
      crank_selectables
      break if @stop_scheduled
      run_heartbeats
    }
  ensure
    close_loopbreaker
    @selectables.each {|k, io| io.close}
    @selectables.clear
    @running = false
  end
end