process.c (disable_child_handler_fork_child): initialize handler for SIGPIPE

This only happens on the !POSIX_SIGNAL case; but one may
test with the following:

    --- a/process.c
    +++ b/process.c
    @@ -3479,6 +3479,7 @@ disable_child_handler_fork_parent(struct child_handler_disabler_state *old)
     #endif
     }

    +#undef POSIX_SIGNAL
     /* This function should be async-signal-safe.  Actually it is. */
     static int
     disable_child_handler_fork_child(struct child_handler_disabler_state *old, char *errmsg, size_t errmsg_buflen)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54890 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
normal 2016-05-02 21:04:17 +00:00
Родитель 3e5dc499a8
Коммит ebfb401e77
2 изменённых файлов: 10 добавлений и 1 удалений

Просмотреть файл

@ -1,3 +1,8 @@
Tue May 3 05:35:54 2016 Eric Wong <e@80x24.org>
* process.c (disable_child_handler_fork_child):
initialize handler for SIGPIPE for !POSIX_SIGNAL
Mon May 2 23:03:42 2016 NAKAMURA Usaku <usa@ruby-lang.org>
* win32/win32.c, include/ruby/win32.h (rb_w32_utruncate): implements new

Просмотреть файл

@ -3502,8 +3502,12 @@ disable_child_handler_fork_child(struct child_handler_disabler_state *old, char
for (sig = 1; sig < NSIG; sig++) {
int reset = 0;
#ifdef SIGPIPE
if (sig == SIGPIPE)
if (sig == SIGPIPE) {
reset = 1;
#ifndef POSIX_SIGNAL
handler = SIG_DFL;
#endif
}
#endif
if (!reset) {
#ifdef POSIX_SIGNAL