Navigation Menu

Skip to content

Commit

Permalink
droonga-engine: extract as a method
Browse files Browse the repository at this point in the history
  • Loading branch information
kou committed Apr 22, 2014
1 parent 81128e7 commit 37e4386
Showing 1 changed file with 31 additions and 24 deletions.
55 changes: 31 additions & 24 deletions lib/droonga/engine/command/droonga_engine.rb
Expand Up @@ -112,36 +112,14 @@ def initialize

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
Expand Down Expand Up @@ -169,6 +147,35 @@ def run_service
}
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
Expand Down

0 comments on commit 37e4386

Please sign in to comment.