From: Gennady Date: 2004-06-11T00:05:42+09:00 Subject: Re: Signals and threads nobu.nokada@softhome.net wrote: > Hi, > > At Thu, 10 Jun 2004 16:37:02 +0900, > Gennady Bystritsky wrote in [ruby-talk:103056]: > >>sigquit_handler = trap "SIGQUIT", "IGNORE" >>... >ignored> >>trap "SIGQUIT", sigquit_handler >> >>I noticed that when the first trap returns nil, the second one does not >>restore a signal handler to "DEFAULT", as I would expect. I have to do >>something like that: >> >>trap "SIGQUIT", (sigquit_handler or "DEFAULT") > > > Which version of ruby do you use? It should return nil at the > first. > > $ ruby18 -v -e 'p trap("SIGQUIT", nil)' > ruby 1.8.2 (2004-06-06) [i686-linux] > "DEFAULT" > I use 1.6.8, and there trap returns nil if no handler is currently in use. I checked in 1.8.0 and it returns "DEFAULT", just as you mentioned. Thanks a lot. I will be gradually switching to 1.8.x. Gennady. [linux.gfbs:274]gfb> ruby -v -e 'p trap("SIGQUIT", "IGNORE")' ruby 1.6.8 (2003-10-15) [i686-linux] nil [linux.gfbs:275]gfb> ruby8 -v -e 'p trap("SIGQUIT", "IGNORE")' ruby 1.8.0 (2003-08-04) [i686-linux] "DEFAULT"