diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | signal.c | 2 |
2 files changed, 6 insertions, 0 deletions
@@ -1,3 +1,7 @@ +Tue Jul 12 14:07:46 2011 KOSAKI Motohiro <kosaki.motohiro@gmail.com> + + * signal.c (install_sighandler): fixed a race. + Tue Jul 12 13:49:32 2011 KOSAKI Motohiro <kosaki.motohiro@gmail.com> * signal.c (sig_trap): don't permit to change a signal handler which @@ -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) |