diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-11-30 09:22:05 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-11-30 09:22:05 +0000 |
commit | 2b02027a0c86853fb6f54113eb76777b9a01f0b9 (patch) | |
tree | bf85585c29c920b6dfb789224b8488bb2e625ebf /signal.c | |
parent | 501592c5b015e1c3f7a53d55889c505a993750ac (diff) | |
download | ruby-2b02027a0c86853fb6f54113eb76777b9a01f0b9.tar.gz ruby-2b02027a0c86853fb6f54113eb76777b9a01f0b9.tar.xz ruby-2b02027a0c86853fb6f54113eb76777b9a01f0b9.zip |
merges r20341 from trunk into ruby_1_9_1.
* signal.c (register_sigaltstack): should not add external
variable (with some cosmetic changes). [ruby-dev:37158]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@20404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'signal.c')
-rw-r--r-- | signal.c | 18 |
1 files changed, 10 insertions, 8 deletions
@@ -47,11 +47,6 @@ typedef int rb_atomic_t; # define NSIG (_SIGMAX + 1) /* For QNX */ #endif -#if defined(SIGSEGV) && defined(HAVE_SIGALTSTACK) -#define USE_SIGALTSTACK -int is_altstack_defined = 0; -#endif - static const struct signals { const char *signm; int signo; @@ -415,6 +410,10 @@ static struct { typedef RETSIGTYPE (*sighandler_t)(int); #ifdef POSIX_SIGNAL +#if defined(SIGSEGV) && defined(HAVE_SIGALTSTACK) +#define USE_SIGALTSTACK +#endif + #ifdef USE_SIGALTSTACK #ifdef SIGSTKSZ #define ALT_STACK_SIZE SIGSTKSZ @@ -422,14 +421,17 @@ typedef RETSIGTYPE (*sighandler_t)(int); #define ALT_STACK_SIZE (4*1024) #endif /* alternate stack for SIGSEGV */ -static void register_sigaltstack() { +static void +register_sigaltstack() +{ + static int is_altstack_defined = 0; stack_t newSS, oldSS; - if(is_altstack_defined) + if (is_altstack_defined) return; newSS.ss_sp = malloc(ALT_STACK_SIZE); - if(newSS.ss_sp == NULL) + if (newSS.ss_sp == NULL) /* should handle error */ rb_bug("register_sigaltstack. malloc error\n"); newSS.ss_size = ALT_STACK_SIZE; |