module Kernel

Public Instance Methods

_trap(*args, &block)
Alias for: trap
trap(*args, &block) click to toggle source
# File lib/stubby/kernel.rb, line 6
def trap(*args, &block)
  #puts "kernel::trap: #{args.inspect}\n---------------\n #{caller.join("\n")}\n\n"

  if args.last.is_a? Hash
    options = args.pop
  else
    options = {}
  end

  if options[:important]
    track(args.first, _trap(*args, &block))
  else
    if tracked?(args.first)
      puts "kernel::trap: #{args.inspect} ignoring"
    else
      _trap(*args, &block) 
    end
  end
end
Also aliased as: _trap

Private Instance Methods

track(signal, child_pid) click to toggle source
# File lib/stubby/kernel.rb, line 27
def track(signal, child_pid)
  (($tracked ||= {})[Process.pid] ||= {})[signal] = child_pid
end
tracked?(signal) click to toggle source
# File lib/stubby/kernel.rb, line 31
def tracked?(signal)
  !!($tracked[Process.pid][signal])
rescue
  false
end