From c307523565e0a8815bfd0d7deeed8b9ae7796e16 Mon Sep 17 00:00:00 2001 From: kosaki Date: Tue, 12 Jul 2011 05:08:28 +0000 Subject: [PATCH] * signal.c (install_sighandler): fixed a race. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32524 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ signal.c | 2 ++ 2 files changed, 6 insertions(+) diff --git a/ChangeLog b/ChangeLog index b17b133f7c..bb7a132b20 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Tue Jul 12 14:07:46 2011 KOSAKI Motohiro + + * signal.c (install_sighandler): fixed a race. + Tue Jul 12 13:49:32 2011 KOSAKI Motohiro * signal.c (sig_trap): don't permit to change a signal handler which diff --git a/signal.c b/signal.c index 7490de9f82..d98aa03b53 100644 --- a/signal.c +++ b/signal.c @@ -1008,10 +1008,12 @@ install_sighandler(int signum, sighandler_t handler) { sighandler_t old; + rb_disable_interrupt(); old = ruby_signal(signum, handler); if (old != SIG_DFL) { ruby_signal(signum, old); } + rb_enable_interrupt(); } #if defined(SIGCLD) || defined(SIGCHLD)