class Redispot::Server::Killer
Public Class Methods
new(redis_pid, timeout = 3)
click to toggle source
# File lib/redispot/server.rb, line 175 def initialize (redis_pid, timeout = 3) @owner_pid = Process.pid @redis_pid = redis_pid @timeout = timeout end
Public Instance Methods
call(*args)
click to toggle source
# File lib/redispot/server.rb, line 181 def call (*args) return if @owner_pid != Process.pid signals = [:TERM, :INT, :KILL] begin Process.kill(signals.shift, pid) Timeout.timeout(timeout) { Process.waitpid(pid) } rescue Timeout::Error => error retry unless signals.empty? raise error end end