From: Paul Brannan Date: 2002-03-25T23:37:34+09:00 Subject: Restoring old signal handlers If I install a new signal handler for, say, SIGCHLD, I can make sure the original gets called with: old_handler = trap("CLD") do old_handler.call() if not old_handler.nil? # ... end If I do this twice, then when SIGCHLD is received: handler2 -> calls handler1 -> calls original handler How can I remove handler1 in such a way that when SIGCHLD is recieved: handler2 -> calls original handler (it occurred to me to install a new handler temporarily just to get handler2, then to re-install handler2 as the original handler, but this seems somewhat klunky). Paul