summaryrefslogtreecommitdiff
path: root/signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'signal.c')
-rw-r--r--signal.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/signal.c b/signal.c
index f98a0b3d79..b5ed58ec75 100644
--- a/signal.c
+++ b/signal.c
@@ -341,6 +341,14 @@ static RETSIGTYPE
sighandle(sig)
int sig;
{
+#ifdef NT
+#define end_interrupt() win32_thread_resume_main()
+ if (win32_main_context(sig, sighandle)) return;
+
+#else
+#define end_interrupt() (void)0
+#endif
+
if (sig >= NSIG) {
rb_bug("trap_handler: Bad signal %d", sig);
}
@@ -358,6 +366,7 @@ sighandle(sig)
rb_trap_pending++;
trap_pending_list[sig]++;
}
+ end_interrupt();
}
#ifdef SIGBUS