diff --git a/signal.c b/signal.c index a4822cf6bc..35ec892f2f 100644 --- a/signal.c +++ b/signal.c @@ -403,6 +403,9 @@ interrupt_init(int argc, VALUE *argv, VALUE self) } void rb_malloc_info_show_results(void); /* gc.c */ +#ifdef POSIX_SIGNAL +static void reset_sigmask(int sig); +#endif void ruby_default_signal(int sig) @@ -413,6 +416,9 @@ ruby_default_signal(int sig) rb_malloc_info_show_results(); signal(sig, SIG_DFL); +#ifdef POSIX_SIGNAL + reset_sigmask(sig); +#endif raise(sig); }