From 964e8f0337c1e6c67e7ab2072fcfa35edfac9d3c Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Tue, 5 Nov 2013 20:18:14 +0100 Subject: [runtime] Fix the osx mavericks stack size calculation in sgen too. --- mono/metadata/sgen-gc.c | 11 +++++++++-- 1 file 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 */ -- cgit v1.2.3