diff options
| author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-11-12 04:31:02 +0000 |
|---|---|---|
| committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-11-12 04:31:02 +0000 |
| commit | b996b6d08ec6c72a0c858a1a4ff4c8c0e531db0c (patch) | |
| tree | 614c098966923f373bd82b99916b7f365289c1a9 /thread_pthread.c | |
| parent | 6da07314357bff7ea17f192e79f9503b6d4b006b (diff) | |
| download | ruby-b996b6d08ec6c72a0c858a1a4ff4c8c0e531db0c.tar.gz ruby-b996b6d08ec6c72a0c858a1a4ff4c8c0e531db0c.tar.xz ruby-b996b6d08ec6c72a0c858a1a4ff4c8c0e531db0c.zip | |
* thread_pthread.c (native_thread_create): constified.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'thread_pthread.c')
| -rw-r--r-- | thread_pthread.c | 31 |
1 files changed, 18 insertions, 13 deletions
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; |
