diff options
author | Zoltan Varga <vargaz@gmail.com> | 2013-11-05 23:18:14 +0400 |
---|---|---|
committer | Zoltan Varga <vargaz@gmail.com> | 2013-11-14 23:18:32 +0400 |
commit | 964e8f0337c1e6c67e7ab2072fcfa35edfac9d3c (patch) | |
tree | 1a78486d88dcd2787da20dfa3f4d504310ef1ca4 | |
parent | 7e121ef8bcce79e64c88983b36e419d8e13a4c78 (diff) |
[runtime] Fix the osx mavericks stack size calculation in sgen too.mono-3.2.5mono-3.2.5-branch
-rw-r--r-- | mono/metadata/sgen-gc.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/mono/metadata/sgen-gc.c b/mono/metadata/sgen-gc.c index 8ce0994b507..e209329eaea 100644 --- a/mono/metadata/sgen-gc.c +++ b/mono/metadata/sgen-gc.c @@ -4080,6 +4080,7 @@ sgen_thread_register (SgenThreadInfo* info, void *addr) binary_protocol_thread_register ((gpointer)mono_thread_info_get_tid (info)); + // FIXME: Unift with mono_thread_get_stack_bounds () /* try to get it with attributes first */ #if (defined(HAVE_PTHREAD_GETATTR_NP) || defined(HAVE_PTHREAD_ATTR_GET_NP)) && defined(HAVE_PTHREAD_ATTR_GETSTACK) { @@ -4104,8 +4105,14 @@ sgen_thread_register (SgenThreadInfo* info, void *addr) pthread_attr_destroy (&attr); } #elif defined(HAVE_PTHREAD_GET_STACKSIZE_NP) && defined(HAVE_PTHREAD_GET_STACKADDR_NP) - info->stack_end = (char*)pthread_get_stackaddr_np (pthread_self ()); - info->stack_start_limit = (char*)info->stack_end - pthread_get_stacksize_np (pthread_self ()); + { + size_t stsize = 0; + guint8 *staddr = NULL; + + mono_thread_get_stack_bounds (&staddr, &stsize); + info->stack_start_limit = staddr; + info->stack_end = staddr + stsize; + } #else { /* FIXME: we assume the stack grows down */ |