aboutsummaryrefslogtreecommitdiffstats
path: root/signal.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-05-09 14:31:27 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-05-09 14:31:27 +0000
commitb60fbca806816958c65353ca4a663c408c9425e3 (patch)
tree5d15f0e21bee80d0e2eb0669ffa3959728b09af2 /signal.c
parent058b5bce60de0ea4b36e5ad8c7ec5faa0d97b001 (diff)
downloadruby-b60fbca806816958c65353ca4a663c408c9425e3.tar.gz
signal.c: if to switch
* signal.c (ruby_signal): turn multiple `if` statements into a `switch`. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'signal.c')
-rw-r--r--signal.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/signal.c b/signal.c
index f06dbe4444..8625d942d4 100644
--- a/signal.c
+++ b/signal.c
@@ -532,18 +532,22 @@ ruby_signal(int signum, sighandler_t handler)
sigact.sa_flags = 0;
#endif
+ switch (signum) {
#ifdef SA_NOCLDWAIT
- if (signum == SIGCHLD && handler == SIG_IGN)
- sigact.sa_flags |= SA_NOCLDWAIT;
+ case SIGCHLD:
+ if (handler == SIG_IGN)
+ sigact.sa_flags |= SA_NOCLDWAIT;
+ break;
#endif
#if defined(SA_ONSTACK) && defined(USE_SIGALTSTACK)
- if (signum == SIGSEGV
+ case SIGSEGV:
#ifdef SIGBUS
- || signum == SIGBUS
+ case SIGBUS:
#endif
- )
sigact.sa_flags |= SA_ONSTACK;
+ break;
#endif
+ }
(void)VALGRIND_MAKE_MEM_DEFINED(&old, sizeof(old));
if (sigaction(signum, &sigact, &old) < 0) {
if (errno != 0 && errno != EINVAL) {