summaryrefslogtreecommitdiff
path: root/signal.c
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-01-21 16:15:13 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-01-21 16:15:13 +0000
commitbdfd5fd1ab5895efcf933e45af8ef1815ad54a13 (patch)
tree669035fdb8317ce008aed74b61e5818078bb3500 /signal.c
parent4b0a168d7b82d7b9e50f61fe8d7a336dc8d84316 (diff)
merge revision(s) r48884,r48885: [Backport #10615]
* signal.c (ruby_signal): since SIGKILL is not supported by MSVCRT, should be treated before calling signal(3). [Bug #10615] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@49370 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'signal.c')
-rw-r--r--signal.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/signal.c b/signal.c
index 3db044e517..c858428fa8 100644
--- a/signal.c
+++ b/signal.c
@@ -601,6 +601,17 @@ posix_signal(int signum, sighandler_t handler)
return ruby_signal(signum, handler);
}
+#elif defined _WIN32
+static inline sighandler_t
+ruby_signal(int signum, sighandler_t handler)
+{
+ if (signum == SIGKILL) {
+ errno = EINVAL;
+ return SIG_ERR;
+ }
+ return signal(signum, handler);
+}
+
#else /* !POSIX_SIGNAL */
#define ruby_signal(sig,handler) (/* rb_trap_accept_nativethreads[(sig)] = 0,*/ signal((sig),(handler)))
#if 0 /* def HAVE_NATIVETHREAD */