Kouhei Sutou
null+****@clear*****
Tue Apr 22 11:34:40 JST 2014
Kouhei Sutou 2014-04-22 11:34:40 +0900 (Tue, 22 Apr 2014) New Revision: 37e438681d126ae7ffc8343a4417706c257ac1cd https://github.com/droonga/droonga-engine/commit/37e438681d126ae7ffc8343a4417706c257ac1cd Message: droonga-engine: extract as a method Modified files: lib/droonga/engine/command/droonga_engine.rb Modified: lib/droonga/engine/command/droonga_engine.rb (+31 -24) =================================================================== --- lib/droonga/engine/command/droonga_engine.rb 2014-04-22 11:30:50 +0900 (7cc993f) +++ lib/droonga/engine/command/droonga_engine.rb 2014-04-22 11:34:40 +0900 (663ab55) @@ -112,36 +112,14 @@ module Droonga def run(command_line_arguments) parse_command_line_arguments!(command_line_arguments) + @listen_socket = TCPServer.new(@configuration.host, @configuration.port) @heartbeat_socket = UDPSocket.new(@configuration.address_family) @heartbeat_socket.bind(@configuration.host, @configuration.port) - service_pid = nil - running = true - trap(:INT) do - Process.kill(:INT, service_pid) - running = false - end - trap(ServerEngine::Daemon::Signals::GRACEFUL_STOP) do - Process.kill(ServerEngine::Daemon::Signals::GRACEFUL_STOP, - service_pid) - running = false - end - trap(ServerEngine::Daemon::Signals::IMMEDIATE_STOP) do - Process.kill(ServerEngine::Daemon::Signals::IMMEDIATE_STOP, - service_pid) - running = false - end - while running - service_pid = run_service - _, status = Process.waitpid2(service_pid) - break if status.nil? - break unless status.success? - end - - true + run_main_loop end private @@ -169,6 +147,35 @@ module Droonga } spawn(env, *command_line, options) end + + def run_main_loop + service_pid = nil + running = true + + trap(:INT) do + Process.kill(:INT, service_pid) + running = false + end + trap(ServerEngine::Daemon::Signals::GRACEFUL_STOP) do + Process.kill(ServerEngine::Daemon::Signals::GRACEFUL_STOP, + service_pid) + running = false + end + trap(ServerEngine::Daemon::Signals::IMMEDIATE_STOP) do + Process.kill(ServerEngine::Daemon::Signals::IMMEDIATE_STOP, + service_pid) + running = false + end + + while running + service_pid = run_service + _, status = Process.waitpid2(service_pid) + break if status.nil? + break unless status.success? + end + + true + end end class Service -------------- next part -------------- HTML����������������������������...Download