X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=libgc%2Fpthread_stop_world.c;h=afa77dadfab52b020debb373f370f7b42c32fe21;hb=c6d92b9983868483ec4b39b83341ffb413ad74d6;hp=334ff1de219a3dc0c9af66d4271706fd52f806fd;hpb=4f021d81ca18b1aca6fd46165becb49bb9c63c25;p=mono.git diff --git a/libgc/pthread_stop_world.c b/libgc/pthread_stop_world.c index 334ff1de219..afa77dadfab 100644 --- a/libgc/pthread_stop_world.c +++ b/libgc/pthread_stop_world.c @@ -19,10 +19,6 @@ #undef PACKAGE_VERSION #include "mono/utils/mono-compiler.h" -#ifdef MONO_DEBUGGER_SUPPORTED -#include "include/libgc-mono-debugger.h" -#endif - #ifdef NACL volatile int __nacl_thread_suspension_needed = 0; pthread_t nacl_thread_parker = -1; @@ -341,7 +337,7 @@ void GC_push_all_stacks() pthread_t GC_stopping_thread; int GC_stopping_pid; -#ifdef PLATFORM_ANDROID +#ifdef HOST_ANDROID static int android_thread_kill(pid_t tid, int sig) { @@ -383,7 +379,7 @@ int GC_suspend_all() GC_printf1("Sending suspend signal to 0x%lx\n", p -> id); #endif -#ifndef PLATFORM_ANDROID +#ifndef HOST_ANDROID result = pthread_kill(p -> id, SIG_SUSPEND); #else result = android_thread_kill(p -> kernel_id, SIG_SUSPEND); @@ -615,6 +611,7 @@ void GC_stop_world() { if (GC_notify_event) GC_notify_event (GC_EVENT_PRE_STOP_WORLD); + GC_process_togglerefs (); /* Make sure all free list construction has stopped before we start. */ /* No new construction can start, since free list construction is */ /* required to acquire and release the GC lock before it starts, */ @@ -625,11 +622,6 @@ void GC_stop_world() /* We should have previously waited for it to become zero. */ # endif /* PARALLEL_MARK */ ++GC_stop_count; -#ifdef MONO_DEBUGGER_SUPPORTED - if (gc_thread_vtable && gc_thread_vtable->stop_world) - gc_thread_vtable->stop_world (); - else -#endif pthread_stop_world (); # ifdef PARALLEL_MARK GC_release_mark_lock(); @@ -666,7 +658,7 @@ static void pthread_start_world() GC_printf1("Sending restart signal to 0x%lx\n", p -> id); #endif -#ifndef PLATFORM_ANDROID +#ifndef HOST_ANDROID result = pthread_kill(p -> id, SIG_THR_RESTART); #else result = android_thread_kill(p -> kernel_id, SIG_THR_RESTART); @@ -717,11 +709,6 @@ static void pthread_start_world() void GC_start_world() { -#ifdef MONO_DEBUGGER_SUPPORTED - if (gc_thread_vtable && gc_thread_vtable->start_world) - gc_thread_vtable->start_world(); - else -#endif pthread_start_world (); } @@ -773,27 +760,7 @@ static void pthread_stop_init() { /* We hold the allocation lock. */ void GC_stop_init() { -#ifdef MONO_DEBUGGER_SUPPORTED - if (gc_thread_vtable && gc_thread_vtable->initialize) - gc_thread_vtable->initialize (); - else -#endif pthread_stop_init (); } -#ifdef MONO_DEBUGGER_SUPPORTED - -GCThreadFunctions *gc_thread_vtable = NULL; - -void * -GC_mono_debugger_get_stack_ptr (void) -{ - GC_thread me; - - me = GC_lookup_thread (pthread_self ()); - return &me->stop_info.stack_ptr; -} - -#endif - #endif