ruby-changes:8837
From: nobu <ko1@a...>
Date: Thu, 27 Nov 2008 15:59:35 +0900 (JST)
Subject: [ruby-changes:8837] Ruby:r20373 (trunk): * signal.c (ALT_STACK_SIZE): default minimum size is insufficient
nobu 2008-11-27 15:59:19 +0900 (Thu, 27 Nov 2008) New Revision: 20373 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=20373 Log: * signal.c (ALT_STACK_SIZE): default minimum size is insufficient for method calls. Modified files: trunk/ChangeLog trunk/signal.c Index: ChangeLog =================================================================== --- ChangeLog (revision 20372) +++ ChangeLog (revision 20373) @@ -1,3 +1,18 @@ +Thu Nov 27 15:59:16 2008 Nobuyoshi Nakada <nobu@r...> + + * 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@r...> * ext/bigdecimal/bigdecimal.c (BigDecimal_div2): should return Index: signal.c =================================================================== --- signal.c (revision 20372) +++ signal.c (revision 20373) @@ -417,7 +417,7 @@ #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 @@ 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"); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/