class Selenium::WebDriver::ChildProcess

def terminate_and_wait_else_kill(timeout)

def terminate_and_wait_else_kill(timeout)
  WebDriver.logger.debug("Sending TERM to process: #{@pid}", id: :process)
  terminate(@pid)
  poll_for_exit(timeout)
  WebDriver.logger.debug("  -> stopped #{@pid}", id: :process)
rescue TimeoutError, Errno::EINVAL
  WebDriver.logger.debug("    -> sending KILL to process: #{@pid}", id: :process)
  kill(@pid)
  wait
  WebDriver.logger.debug("      -> killed #{@pid}", id: :process)
end