From b996b6d08ec6c72a0c858a1a4ff4c8c0e531db0c Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 12 Nov 2009 04:31:02 +0000 Subject: * thread_pthread.c (native_thread_create): constified. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- thread_pthread.c | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) (limited to 'thread_pthread.c') diff --git a/thread_pthread.c b/thread_pthread.c index 2273d2062..22db6d9f8 100644 --- a/thread_pthread.c +++ b/thread_pthread.c @@ -455,6 +455,22 @@ 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) { @@ -465,20 +481,9 @@ native_thread_create(rb_thread_t *th) } else { pthread_attr_t attr; -#ifdef __SYMBIAN32__ - size_t stack_size = 64 * 1024; /* 64KB: Let's be slightly more frugal on mobile platform */ -#else - size_t stack_size = 512 * 1024; /* 512KB */ -#endif - size_t space; + const size_t stack_size = RUBY_STACK_MIN; + const size_t space = RUBY_STACK_SPACE; -#ifdef PTHREAD_STACK_MIN - if (stack_size < PTHREAD_STACK_MIN) { - stack_size = PTHREAD_STACK_MIN * 2; - } -#endif - space = stack_size/5; - if (space > 1024*1024) space = 1024*1024; th->machine_stack_maxsize = stack_size - space; #ifdef __ia64 th->machine_stack_maxsize /= 2; -- cgit