summaryrefslogtreecommitdiff
path: root/signal.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-04-16 07:42:49 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-04-16 07:42:49 +0000
commit94a1bece4a4adb5c0f8f09fb9b95356bae24912b (patch)
tree87c751178430d6471e391108c73d92cf25ad4af9 /signal.c
parente0041160736f1c0f092400eb75336311ab10fa1e (diff)
flock,flatten,signal to main_thread
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@168 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'signal.c')
-rw-r--r--signal.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/signal.c b/signal.c
index c6ade3907a..22c33d2440 100644
--- a/signal.c
+++ b/signal.c
@@ -271,6 +271,11 @@ posix_signal(signum, handler)
}
#endif
+#ifdef THREAD
+# define rb_interrupt thread_interrupt
+# define rb_trap_eval thread_trap_eval
+#endif
+
static RETSIGTYPE
sighandle(sig)
int sig;
@@ -285,11 +290,7 @@ sighandle(sig)
if (trap_immediate) {
trap_immediate = 0;
if (sig == SIGINT && !trap_list[SIGINT]) {
-#ifdef THREAD
- thread_interrupt();
-#else
rb_interrupt();
-#endif
}
rb_trap_eval(trap_list[sig], sig);
trap_immediate = 1;
@@ -334,18 +335,10 @@ rb_trap_exec()
if (trap_pending_list[i]) {
trap_pending_list[i] = 0;
if (i == SIGINT && trap_list[SIGINT] == 0) {
-#ifdef THREAD
- thread_interrupt();
-#else
rb_interrupt();
-#endif
return;
}
-#ifdef THREAD
- thread_trap_eval(trap_list[i], i);
-#else
rb_trap_eval(trap_list[i], i);
-#endif
}
}
trap_pending = 0;