[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]