Method: EventMachine.stop_event_loop
- Defined in:
- lib/eventmachine.rb
.stop_event_loop ⇒ Object
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 |