summaryrefslogtreecommitdiff
path: root/signal.c
diff options
context:
space:
mode:
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;