# File src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb, line 122
  def self.list_trappable
    ruby_engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : "ruby"
    case ruby_engine
    when /jruby/
      result = Signal.list.dup
      result.delete("QUIT")
      result.delete("ILL")
      result.delete("FPE")
      result.delete("SEGV")
      result.delete("USR1")
      result.delete("IOT")
    else
      result = Signal.list.dup
      result.delete("ALRM")
      result.delete("VTALRM")
    end

    # Don't touch SIGCHLD no matter what! On OS X waitpid() will
    # malfunction if SIGCHLD doesn't have a correct handler.
    result.delete("CLD")
    result.delete("CHLD")

    # Other stuff that we don't want to trap no matter which
    # Ruby engine.
    result.delete("STOP")
    result.delete("KILL")
    result.delete("EXIT")

    return result
  end