diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | signal.c | 6 |
2 files changed, 9 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Mon Dec 1 15:48:47 2008 NAKAMURA Usaku <usa@ruby-lang.org> + + * signal.c (register_sigaltstack): no need to define on non-sigaltstack + platform. + Mon Dec 1 12:00:45 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> * cont.c (rb_fiber_start): calls with exact argument number. @@ -446,8 +446,6 @@ register_sigaltstack(void) if (sigaltstack(&newSS, &oldSS) < 0) rb_bug("register_sigaltstack. error\n"); } -#else -#define register_sigaltstack() ((void)0) #endif static sighandler_t @@ -716,7 +714,9 @@ default_handler(int sig) #ifdef SIGSEGV case SIGSEGV: func = (sighandler_t)sigsegv; +# ifdef USE_SIGALTSTACK register_sigaltstack(); +# endif break; #endif #ifdef SIGPIPE @@ -1124,7 +1124,9 @@ Init_signal(void) install_sighandler(SIGBUS, sigbus); #endif #ifdef SIGSEGV +# ifdef USE_SIGALTSTACK register_sigaltstack(); +# endif install_sighandler(SIGSEGV, (sighandler_t)sigsegv); #endif } |