ruby-changes:25027
From: nobu <ko1@a...>
Date: Thu, 4 Oct 2012 11:39:47 +0900 (JST)
Subject: [ruby-changes:25027] nobu:r37079 (trunk): * thread_pthread.c (RUBY_STACK_MIN_LIMIT): name magic number.
nobu 2012-10-04 11:39:34 +0900 (Thu, 04 Oct 2012) New Revision: 37079 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=37079 Log: * thread_pthread.c (RUBY_STACK_MIN_LIMIT): name magic number. Modified files: trunk/thread_pthread.c Index: thread_pthread.c =================================================================== --- thread_pthread.c (revision 37078) +++ thread_pthread.c (revision 37079) @@ -588,6 +588,26 @@ #endif } native_main_thread; + +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_SPACE_LIMIT = 1024 * 1024, +#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_RATIO = 5, + RUBY_STACK_MIN_SPACE = RUBY_STACK_MIN/RUBY_STACK_SPACE_RATIO, + RUBY_STACK_SPACE = ((RUBY_STACK_MIN_SPACE > RUBY_STACK_SPACE_LIMIT) ? + RUBY_STACK_SPACE_LIMIT : RUBY_STACK_MIN_SPACE) +}; + #ifdef STACK_END_ADDRESS extern void *STACK_END_ADDRESS; #endif @@ -806,24 +826,6 @@ 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_SPACE_LIMIT = 1024 * 1024 -}; - -#ifdef PTHREAD_STACK_MIN -#define RUBY_STACK_MIN ((RUBY_STACK_MIN_LIMIT < PTHREAD_STACK_MIN) ? \ - PTHREAD_STACK_MIN * 2 : RUBY_STACK_MIN_LIMIT) -#else -#define RUBY_STACK_MIN (RUBY_STACK_MIN_LIMIT) -#endif -#define 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) { @@ -1425,7 +1427,7 @@ else { return 0; } - size /= 5; + size /= RUBY_STACK_SPACE_RATIO; if (size > water_mark) size = water_mark; if (IS_STACK_DIR_UPPER()) { if (size > ~(size_t)base+1) size = ~(size_t)base+1; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/