class ChildProcess::Unix::Process

Public Instance Methods

return_unless_timeout() click to toggle source
# File lib/childprocess/process.rb, line 5
def return_unless_timeout
  lambda do |timeout|
    begin
      return poll_for_exit timeout
    rescue TimeoutError
    end
  end
end
stop(timeout = 3, signal=nil) click to toggle source
# File lib/childprocess/process.rb, line 14
def stop(timeout = 3, signal=nil)
  assert_started

  unless signal.nil?
    send_signal signal
    return_unless_timeout.call(timeout)
  end

  send_term
  return_unless_timeout.call(timeout)

  send_kill
  wait
rescue Errno::ECHILD, Errno::ESRCH
  # handle race condition where process dies between timeout
  # and send_kill
  true
end