e$B1sF#$G$9!#e(B
OpenSolaris e$B$Ge(B ruby e$B$r%S%k%I$7$F$_$?$i%(%i!<$,=P$^$7$?!#e(B
In file included from thread.c:213:
thread_pthread.c:470: error: enumerator value for RUBY_STACK_MIN' not integer constant thread.c: In function
rb_fd_select’:
thread.c:2307: warning: implicit declaration of function
`select_large_fdset’
make: *** [thread.o] Error 1
PTHREAD_STACK_MIN e$B$NDj5A$,e(B
#define PTHREAD_STACK_MIN ((size_t)_sysconf(_SC_THREAD_STACK_MIN))
e$B$H$$$&4X?t8F$S=P$7$K$J$C$F$$$F!"$3$l$re(B enum
e$B$NCM$K$7$h$&$H$7$F$$$k$3$H$,e(B
e$B860x$G$9!#e(B#if (RUBY_STACK_MIN_LIMIT < PTHREAD_STACK_MIN)
e$B$J$I$b$G$-$^$;$s!#e(B
enum
e$B$G$J$/%0%m!<%P%kJQ?t$K$9$l$PF0$-$^$9$,!"$=$&$7$F$b$$$$$G$7$g$&$+!#e(B
OpenSolaris e$B$Oe(B supported e$B$G$be(B best effort
e$B$G$b$J$$$N$G9=$o$J$$$H$$$($Pe(B
e$B9=$o$J$$$N$G$9$,!"B>$N%W%i%C%H%U%)!<%`$G$b5/$-$k$+$b$7$l$J$$OC$G$9$7!“e(B
e$B$3$3$rD>$;$Pe(B make && make test
e$B$,DL$k$/$i$$$K$OF0$$$?$N$G!”$G$-$l$Pe(B
e$BD>$7$?$$$H;W$$$^$9!#e(B
diff --git a/thread_pthread.c b/thread_pthread.c
index c8ee4e1…43adc39 100644
— a/thread_pthread.c
+++ b/thread_pthread.c
@@ -264,6 +264,8 @@ static struct {
extern void *STACK_END_ADDRESS;
#endif
+static int RUBY_STACK_MIN_LIMIT, RUBY_STACK_MIN,
RUBY_STACK_SPACE_LIMIT, RUBY_STACK_SPACE;
+
#undef ruby_init_stack
void
ruby_init_stack(volatile VALUE *addr
@@ -301,6 +303,20 @@ ruby_init_stack(volatile VALUE *addr
}
}
#endif
+
+#ifdef SYMBIAN32
- RUBY_STACK_MIN_LIMIT = 64 * 1024; /* 64KB: Let’s be slightly
more frugal on mobile platform */
+#else - RUBY_STACK_MIN_LIMIT = 512 * 1024; /* 512KB */
+#endif
+#ifdef PTHREAD_STACK_MIN - RUBY_STACK_MIN = (RUBY_STACK_MIN_LIMIT < PTHREAD_STACK_MIN) ?
PTHREAD_STACK_MIN * 2 : RUBY_STACK_MIN_LIMIT;
+#else - RUBY_STACK_MIN = RUBY_STACK_MIN_LIMIT;
+#endif - RUBY_STACK_SPACE_LIMIT = 1024 * 1024;
- RUBY_STACK_SPACE = (RUBY_STACK_MIN/5 > RUBY_STACK_SPACE_LIMIT ?
-
RUBY_STACK_SPACE_LIMIT : RUBY_STACK_MIN/5);
}
#define CHECK_ERR(expr)
@@ -457,22 +473,6 @@ use_cached_thread(rb_thread_t *th)
return result;
}
-enum {
-#ifdef SYMBIAN32
- RUBY_STACK_MIN_LIMIT = 64 * 1024, /* 64KB: Let’s be slightly
more frugal on mobile platform */
-#else - RUBY_STACK_MIN_LIMIT = 512 * 1024, /* 512KB */
-#endif - RUBY_STACK_MIN = (
-#ifdef PTHREAD_STACK_MIN -
(RUBY_STACK_MIN_LIMIT < PTHREAD_STACK_MIN) ? PTHREAD_STACK_MIN *
2 :
-#endif
-
RUBY_STACK_MIN_LIMIT),
- RUBY_STACK_SPACE_LIMIT = 1024 * 1024,
- RUBY_STACK_SPACE = (RUBY_STACK_MIN/5 > RUBY_STACK_SPACE_LIMIT ?
-
RUBY_STACK_SPACE_LIMIT : RUBY_STACK_MIN/5)
-};
static int
native_thread_create(rb_thread_t *th)
{