summaryrefslogtreecommitdiff
path: root/signal.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-11-30 17:28:17 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-11-30 17:28:17 +0000
commit1b4f379ba34bb48aa2144ff5a14b07ae4f4bc57e (patch)
tree0f1f7d9c26f9ae4e8de5c071b7ca8b3a5587bd60 /signal.c
parent6f1b13de9904e3c26ebf14e4b5633e4b9f4a01ff (diff)
* signal.c (sighandler): call handler immediately only for default
handlers. [ruby-dev:25003] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'signal.c')
-rw-r--r--signal.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/signal.c b/signal.c
index c45d3c95f4..a2ffc088ec 100644
--- a/signal.c
+++ b/signal.c
@@ -417,7 +417,7 @@ sighandler(sig)
ruby_signal(sig, sighandler);
#endif
- if (ATOMIC_TEST(rb_trap_immediate)) {
+ if (trap_list[sig].cmd == 0 && ATOMIC_TEST(rb_trap_immediate)) {
IN_MAIN_CONTEXT(signal_exec, sig);
ATOMIC_SET(rb_trap_immediate, 1);
}