X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fsgen-os-mach.c;h=7d599e20908e59e6559b0e1bafbaa41e01e76f4f;hb=aa3de31b70d1c5826d67147696423cdd9c334d41;hp=41d068b1e51512f87037b70cf0ea3057b9b4499b;hpb=0b3c3126ea203240ba9864ab9082c44935f32f4f;p=mono.git diff --git a/mono/metadata/sgen-os-mach.c b/mono/metadata/sgen-os-mach.c index 41d068b1e51..7d599e20908 100644 --- a/mono/metadata/sgen-os-mach.c +++ b/mono/metadata/sgen-os-mach.c @@ -70,8 +70,7 @@ sgen_suspend_thread (SgenThreadInfo *info) mono_mach_arch_thread_state_to_mcontext (state, mctx); ctx.uc_mcontext = mctx; - info->stopped_domain = mono_mach_arch_get_tls_value_from_thread ( - mono_thread_info_get_tid (info), mono_domain_get_tls_key ()); + info->stopped_domain = mono_thread_info_tls_get (info, TLS_KEY_DOMAIN); info->stopped_ip = (gpointer) mono_mach_arch_get_ip (state); info->stack_start = NULL; stack_start = (char*) mono_mach_arch_get_sp (state) - REDZONE_SIZE; @@ -92,7 +91,7 @@ sgen_suspend_thread (SgenThreadInfo *info) if (mono_gc_get_gc_callbacks ()->thread_suspend_func) mono_gc_get_gc_callbacks ()->thread_suspend_func (info->runtime_data, &ctx, NULL); - SGEN_LOG (2, "thread %p stopped at %p stack_start=%p", (void*)info->info.native_handle, info->stopped_ip, info->stack_start); + SGEN_LOG (2, "thread %p stopped at %p stack_start=%p", (void*)(gsize)info->info.native_handle, info->stopped_ip, info->stack_start); binary_protocol_thread_suspend ((gpointer)mono_thread_info_get_tid (info), info->stopped_ip); @@ -115,9 +114,12 @@ sgen_thread_handshake (BOOL suspend) int count = 0; + cur_thread->suspend_done = TRUE; FOREACH_THREAD_SAFE (info) { if (info == cur_thread || sgen_is_worker_thread (mono_thread_info_get_tid (info))) continue; + + info->suspend_done = FALSE; if (info->gc_disabled) continue; @@ -144,5 +146,11 @@ mono_gc_get_suspend_signal (void) { return -1; } + +int +mono_gc_get_restart_signal (void) +{ + return -1; +} #endif #endif