sgen_client_binary_protocol_world_stopping (int generation, long long timestamp, gpointer thread)
{
MONO_GC_WORLD_STOP_BEGIN ();
-
- mono_profiler_gc_event (MONO_GC_EVENT_PRE_STOP_WORLD, generation);
}
static void G_GNUC_UNUSED
sgen_client_binary_protocol_world_stopped (int generation, long long timestamp, long long total_major_cards, long long marked_major_cards, long long total_los_cards, long long marked_los_cards)
{
MONO_GC_WORLD_STOP_END ();
-
- mono_profiler_gc_event (MONO_GC_EVENT_POST_STOP_WORLD, generation);
}
static void G_GNUC_UNUSED
sgen_client_binary_protocol_world_restarting (int generation, long long timestamp, long long total_major_cards, long long marked_major_cards, long long total_los_cards, long long marked_los_cards)
{
MONO_GC_WORLD_RESTART_BEGIN (generation);
-
- mono_profiler_gc_event (MONO_GC_EVENT_PRE_START_WORLD, generation);
}
static void G_GNUC_UNUSED
sgen_client_binary_protocol_world_restarted (int generation, long long timestamp)
{
MONO_GC_WORLD_RESTART_END (generation);
-
- mono_profiler_gc_event (MONO_GC_EVENT_POST_START_WORLD, generation);
}
static void G_GNUC_UNUSED
if (G_UNLIKELY (mono_profiler_events & MONO_PROFILE_GC_MOVES))
mono_sgen_gc_event_moves ();
+ mono_profiler_gc_event (MONO_GC_EVENT_PRE_STOP_WORLD, generation);
+
acquire_gc_locks ();
mono_profiler_gc_event (MONO_GC_EVENT_PRE_STOP_WORLD_LOCKED, generation);
SGEN_LOG (3, "world stopped");
+ mono_profiler_gc_event (MONO_GC_EVENT_POST_STOP_WORLD, generation);
+
TV_GETTIME (end_handshake);
time_stop_world += TV_ELAPSED (stop_world_time, end_handshake);
if (G_UNLIKELY (mono_profiler_events & MONO_PROFILE_GC_MOVES))
mono_sgen_gc_event_moves ();
+ mono_profiler_gc_event (MONO_GC_EVENT_PRE_START_WORLD, generation);
+
FOREACH_THREAD (info) {
info->client_info.stack_start = NULL;
memset (&info->client_info.ctx, 0, sizeof (MonoContext));
SGEN_LOG (2, "restarted (pause time: %d usec, max: %d)", (int)usec, (int)max_pause_usec);
+ mono_profiler_gc_event (MONO_GC_EVENT_POST_START_WORLD, generation);
+
/*
* We must release the thread info suspend lock after doing
* the thread handshake. Otherwise, if the GC stops the world