diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-11-27 06:59:19 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-11-27 06:59:19 +0000 |
commit | 079505c040dd5cbf734816ec3b656b5921c977fc (patch) | |
tree | 53d8d6c26215ce6bcdf401d3a9e317388ad1d929 | |
parent | 7348aa6113cdc2c9ce62044ab83f2ac1db82816d (diff) | |
download | ruby-079505c040dd5cbf734816ec3b656b5921c977fc.tar.gz |
* signal.c (ALT_STACK_SIZE): default minimum size is insufficient
for method calls.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 15 | ||||
-rw-r--r-- | signal.c | 4 |
2 files changed, 17 insertions, 2 deletions
@@ -1,3 +1,18 @@ +Thu Nov 27 15:59:16 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * gc.c (ruby_stack_check): no check if using sigaltstack. + + * signal.c (ALT_STACK_SIZE): default minimum size is insufficient + for method calls. + + * signal.c (sigsegv): handles stack overflow if possible. + + * thread.c (ruby_thread_stack_overflow): helper function to raise + sysstack_error. + + * thread_pthread.c (ruby_stack_overflowed_p): checks for stack + overflow. + Thu Nov 27 10:40:52 2008 Yukihiro Matsumoto <matz@ruby-lang.org> * ext/bigdecimal/bigdecimal.c (BigDecimal_div2): should return @@ -417,7 +417,7 @@ typedef RETSIGTYPE (*sighandler_t)(int); #ifdef USE_SIGALTSTACK #define SIGINFO_ARG , siginfo_t *info, void *ctx #ifdef SIGSTKSZ -#define ALT_STACK_SIZE SIGSTKSZ +#define ALT_STACK_SIZE (SIGSTKSZ*2) #else #define ALT_STACK_SIZE (4*1024) #endif @@ -431,7 +431,7 @@ register_sigaltstack() if (is_altstack_defined) return; - newSS.ss_sp = malloc(ALT_STACK_SIZE * 2); + newSS.ss_sp = malloc(ALT_STACK_SIZE); if (newSS.ss_sp == NULL) /* should handle error */ rb_bug("register_sigaltstack. malloc error\n"); |