Sha256: 52e4e7393f0370cee97a526b538038e60b13edc271a44d933f3c09365f1ccd3d
Contents?: true
Size: 1.04 KB
Versions: 6
Compression:
Stored size: 1.04 KB
Contents
module Protobuf module Rpc class EventedRunner def self.stop EventMachine.stop_event_loop if EventMachine.reactor_running? Protobuf::Logger.info 'Shutdown complete' end def self.run(server) # Ensure errors thrown within EM are caught and logged appropriately EventMachine.error_handler do |error| if error.message == 'no acceptor' raise 'Failed binding to %s:%d (%s)' % [server.host, server.port, error.message] else Protobuf::Logger.error error.message Protobuf::Logger.error error.backtrace.join("\n") end end # Startup and run the rpc server EM.schedule do EventMachine.start_server(server.host, server.port, Protobuf::Rpc::EventedServer) && \ Protobuf::Logger.info('RPC Server listening at %s:%d in %s' % [server.host, server.port, server.env]) end # Join or start the reactor EM.reactor_running? ? EM.reactor_thread.join : EM.run end end end end
Version data entries
6 entries across 6 versions & 1 rubygems