Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZoltan Varga <vargaz@gmail.com>2013-11-05 23:18:14 +0400
committerZoltan Varga <vargaz@gmail.com>2013-11-14 23:18:32 +0400
commit964e8f0337c1e6c67e7ab2072fcfa35edfac9d3c (patch)
tree1a78486d88dcd2787da20dfa3f4d504310ef1ca4
parent7e121ef8bcce79e64c88983b36e419d8e13a4c78 (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.c11
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 */