summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--thread_pthread.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 79d618b254..71fd8e3097 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun Jun 10 17:54:26 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * thread_pthread.c (ruby_init_stack): adjust stack size for offset of
+ addr from the bottom.
+
Sun Jun 10 15:49:47 2012 Tanaka Akira <akr@fsij.org>
* process.c (retry_fork): call after_fork except in a child process.
diff --git a/thread_pthread.c b/thread_pthread.c
index 10c7a83dd3..8a77d70144 100644
--- a/thread_pthread.c
+++ b/thread_pthread.c
@@ -608,8 +608,9 @@ ruby_init_stack(volatile VALUE *addr
size_t size = 0;
size_t space = 0;
#if defined(STACKADDR_AVAILABLE)
- void* addr;
- get_stack(&addr, &size);
+ void* stackaddr;
+ get_stack(&stackaddr, &size);
+ space = STACK_DIR_UPPER((char *)addr - (char *)stackaddr, (char *)stackaddr - (char *)addr);
#elif defined(HAVE_GETRLIMIT)
struct rlimit rlim;
if (getrlimit(RLIMIT_STACK, &rlim) == 0) {