Sha256: ec9eeca1240ce483d22bfb52d7927b99d9b1b081e1690fbf3053a34c4b875ad1
Contents?: true
Size: 1.12 KB
Versions: 3
Compression:
Stored size: 1.12 KB
Contents
module RestAssured module Utils class Subprocess attr_reader :pid def initialize @pid = Kernel.fork do trap('USR1') do $stopped = true Process.kill('TERM', Process.pid) # unlike 'exit' this one is NOT being intercepted by Webrick end at_exit do if $stopped puts "Being stopped from parent..." #else #puts "Shutting down parent..." #Process.kill('TERM', Process.ppid) end exit! end begin yield rescue => e if defined?(EventMachine) && e.is_a?(EventMachine::ConnectionNotBound) retry end puts "#{self} has raised #{e.inspect}:" puts e.backtrace.join("\n") end end Process.detach(@pid) at_exit { stop } end def alive? Process.kill(0, @pid) true rescue Errno::ESRCH false end def stop Process.kill('USR1', @pid) rescue Errno::ESRCH # no such process end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rest-assured-1.0.0 | lib/rest-assured/utils/subprocess.rb |
rest-assured-1.0.0.rc2 | lib/rest-assured/utils/subprocess.rb |
rest-assured-1.0.0.rc1 | lib/rest-assured/utils/subprocess.rb |