diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-11-30 14:08:58 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-11-30 14:08:58 +0000 |
commit | 29c7c72e09b28e2dd35ac73805b33604c6e4ae09 (patch) | |
tree | 980667e1d669e1d2ef25edbca1d69aaefdabe2e5 /signal.c | |
parent | 897b452f8d83c28f8b9aedf513fb02dea025f6ea (diff) | |
download | ruby-29c7c72e09b28e2dd35ac73805b33604c6e4ae09.tar.gz |
* signal.c (trap_signm): SIGVTALRM no longer used for green
thread. [ruby-talk:281318]
* signal.c (ruby_sig_finalize): do not install SIG_DFL handler if
previous handler is sighandler().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'signal.c')
-rw-r--r-- | signal.c | 18 |
1 files changed, 12 insertions, 6 deletions
@@ -783,12 +783,6 @@ trap_signm(VALUE vsig) if (sig == 0 && strcmp(s, "EXIT") != 0) rb_raise(rb_eArgError, "unsupported signal SIG%s", s); } - -#if defined(HAVE_SETITIMER) - if (sig == SIGVTALRM) { - rb_raise(rb_eArgError, "SIGVTALRM reserved for Thread; can't set handler"); - } -#endif return sig; } @@ -993,6 +987,18 @@ init_sigchld(int sig) #endif } +void +ruby_sig_finalize() +{ + sighandler_t oldfunc; + + oldfunc = ruby_signal(SIGINT, SIG_IGN); + if (oldfunc == sighandler) { + ruby_signal(SIGINT, SIG_DFL); + } +} + + #ifdef RUBY_DEBUG_ENV int ruby_enable_coredump = 0; #endif |