module Polyphony::Process
Process
patches
Public Class Methods
kill_and_await(sig, pid)
click to toggle source
# File lib/polyphony/adapters/process.rb, line 24 def kill_and_await(sig, pid) ::Process.kill(sig, pid) Polyphony.backend_waitpid(pid) rescue Errno::ESRCH # process doesn't exist end
kill_process(pid)
click to toggle source
# File lib/polyphony/adapters/process.rb, line 16 def kill_process(pid) cancel_after(5) do kill_and_await('TERM', pid) end rescue Polyphony::Cancel kill_and_await(-9, pid) end
watch(cmd = nil, &block)
click to toggle source
# File lib/polyphony/adapters/process.rb, line 7 def watch(cmd = nil, &block) terminated = nil pid = cmd ? Kernel.spawn(cmd) : Polyphony.fork(&block) Polyphony.backend_waitpid(pid) terminated = true ensure kill_process(pid) unless terminated || pid.nil? end