module Signal
def self.list_trappable
def self.list_trappable ruby_engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : "ruby" case ruby_engine when "jruby" result = Signal.list result.delete("QUIT") result.delete("ILL") result.delete("FPE") result.delete("KILL") result.delete("SEGV") result.delete("USR1") result.delete("IOT") result.delete("EXIT") else result = Signal.list 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") return result end