aboutsummaryrefslogtreecommitdiffstats
path: root/thread_pthread.ci
diff options
context:
space:
mode:
Diffstat (limited to 'thread_pthread.ci')
-rw-r--r--thread_pthread.ci10
1 files changed, 9 insertions, 1 deletions
diff --git a/thread_pthread.ci b/thread_pthread.ci
index 9d5a7d3d79..6cf43dbeb3 100644
--- a/thread_pthread.ci
+++ b/thread_pthread.ci
@@ -280,13 +280,21 @@ native_thread_create(rb_thread_t *th)
}
else {
pthread_attr_t attr;
- size_t stack_size = 1024 * 1024; /* 1024KB */
+ size_t stack_size = 512 * 1024; /* 512KB */
+ size_t 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;
+ th->machine_register_stack_maxsize = th->machine_stack_maxsize;
+#endif
CHECK_ERR(pthread_attr_init(&attr));