projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #4767 from lambdageek/bug-55681
[mono.git]
/
libgc
/
pthread_stop_world.c
diff --git
a/libgc/pthread_stop_world.c
b/libgc/pthread_stop_world.c
index 334ff1de219a3dc0c9af66d4271706fd52f806fd..3bfdfbf35eddc525cb5667d1e6a258babf555ea5 100644
(file)
--- 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"
#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;
#ifdef NACL
volatile int __nacl_thread_suspension_needed = 0;
pthread_t nacl_thread_parker = -1;
@@
-615,6
+611,7
@@
void GC_stop_world()
{
if (GC_notify_event)
GC_notify_event (GC_EVENT_PRE_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, */
/* 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;
/* 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();
pthread_stop_world ();
# ifdef PARALLEL_MARK
GC_release_mark_lock();
@@
-717,11
+709,6
@@
static void pthread_start_world()
void GC_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 ();
}
pthread_start_world ();
}
@@
-773,27
+760,7
@@
static void pthread_stop_init() {
/* We hold the allocation lock. */
void GC_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 ();
}
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
#endif