class Dizby::ConnectionWorker
Public Class Methods
new(server, conn)
click to toggle source
# File lib/dizby/worker/connection.rb, line 11 def initialize(server, conn) @server = server @conn = conn @thread = Thread.start { process_requests } end
Public Instance Methods
close()
click to toggle source
# File lib/dizby/worker/connection.rb, line 18 def close @conn.close unless @conn.closed? # TODO: @thread gets set to nil for some reason... @thread.join if @thread end
Private Instance Methods
process_request()
click to toggle source
# File lib/dizby/worker/connection.rb, line 35 def process_request succ, result = InvokeMethod.new(@server, *@conn.recv_request).perform @server.log.backtrace(result) unless succ begin @conn.send_reply(succ, result) rescue @server.log.backtrace($!) end succ end
process_requests()
click to toggle source
# File lib/dizby/worker/connection.rb, line 27 def process_requests loop { break unless process_request } rescue RemoteServerShutdown @server.log.debug("lost connection to server at #{@conn.remote_uri}") ensure @conn.close unless @conn.closed? end