Method: EventMachine.stop_event_loop

Defined in:
lib/eventmachine.rb

.stop_event_loopObject

stop_event_loop may called from within a callback method while EventMachine’s processing loop is running. It causes the processing loop to stop executing, which will cause all open connections and accepting servers to be run down and closed. Callbacks for connection-termination will be called as part of the processing of stop_event_loop. (There currently is no option to panic-stop the loop without closing connections.) When all of this processing is complete, the call to EventMachine::run which started the processing loop will return and program flow will resume from the statement following EventMachine::run call.

Usage example

require 'rubygems'
require 'eventmachine'

module Redmond

  def post_init
    puts "We're sending a dumb HTTP request to the remote peer."
    send_data "GET / HTTP/1.1\r\nHost: www.microsoft.com\r\n\r\n"
  end

  def receive_data data
    puts "We received #{data.length} bytes from the remote peer."
    puts "We're going to stop the event loop now."
    EventMachine::stop_event_loop
  end

  def unbind
    puts "A connection has terminated."
  end

end

puts "We're starting the event loop now."
EventMachine::run {
  EventMachine::connect "www.microsoft.com", 80, Redmond
}
puts "The event loop has stopped."

This program will produce approximately the following output:

We're starting the event loop now.
We're sending a dumb HTTP request to the remote peer.
We received 1440 bytes from the remote peer.
We're going to stop the event loop now.
A connection has terminated.
The event loop has stopped.


354
355
356
# File 'lib/eventmachine.rb', line 354

def EventMachine::stop_event_loop
  EventMachine::stop
end