diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | signal.c | 13 |
2 files changed, 10 insertions, 11 deletions
@@ -1,3 +1,11 @@ +Sun Oct 22 14:48:31 2006 Yukihiro Matsumoto <matz@ruby-lang.org> + + * signal.c (ruby_signal): don't set SA_RESTART. a backport from + the HEAD. [ruby-talk:220937] [ruby-talk:147220] + + * signal.c (Init_signal): avoid duplicated installation of SIGCHLD + handler. + Sun Oct 22 16:47:56 2006 Nobuyoshi Nakada <nobu@ruby-lang.org> * string.c (rb_str_substr): should be infected with only original @@ -341,14 +341,6 @@ ruby_signal(signum, handler) sigact.sa_handler = handler; sigemptyset(&sigact.sa_mask); sigact.sa_flags = 0; -# if defined(SA_RESTART) - /* All other signals but VTALRM shall restart restartable syscall - VTALRM will cause EINTR to syscall if interrupted. - */ - if (signum != SIGVTALRM) { - sigact.sa_flags |= SA_RESTART; /* SVR4, 4.3+BSD */ - } -# endif # ifdef SA_NOCLDWAIT if (signum == SIGCHLD && handler == SIG_IGN) sigact.sa_flags |= SA_NOCLDWAIT; @@ -1010,10 +1002,9 @@ Init_signal() install_sighandler(SIGPIPE, sigpipe); #endif -#ifdef SIGCLD +#if defined(SIGCLD) init_sigchld(SIGCLD); -#endif -#ifdef SIGCHLD +#elif defined(SIGCHLD) init_sigchld(SIGCHLD); #endif |