@private
# File lib/em/pure_ruby.rb, line 1055 def initialize io super io end
Versions of ruby 1.8.4 later than May 26 2006 will work properly with an object of type TCPServer. Prior versions won't so we play it safe and just build a socket.
# File lib/em/pure_ruby.rb, line 1046 def start_server host, port sd = Socket.new( Socket::AF_INET, Socket::SOCK_STREAM, 0 ) sd.setsockopt( Socket::SOL_SOCKET, Socket::SO_REUSEADDR, true ) sd.bind( Socket.pack_sockaddr_in( port, host )) sd.listen( 50 ) # 5 is what you see in all the books. Ain't enough. EvmaTCPServer.new sd end
# File lib/em/pure_ruby.rb, line 1068 def eventable_read begin 10.times { descriptor,peername = io.accept_nonblock sd = EvmaTCPClient.new descriptor sd.is_server = true EventMachine::event_callback uuid, ConnectionAccepted, sd.uuid } rescue Errno::EWOULDBLOCK, Errno::EAGAIN end end
# File lib/em/pure_ruby.rb, line 1082 def schedule_close @close_scheduled = true end
# File lib/em/pure_ruby.rb, line 1060 def select_for_reading? true end