lock_compilation_data (void)
{
mono_coop_mutex_lock (&compilation_data.lock);
- fflush (stdout);
}
static void
unlock_compilation_data (void)
{
- fflush (stdout);
mono_coop_mutex_unlock (&compilation_data.lock);
}
MonoJitTlsData *jit_tls = (MonoJitTlsData *)mono_tls_get_jit_tls ();
JitCompilationEntry *entry;
-
static gboolean inited;
if (!inited) {
mono_counters_register ("JIT compile waited others", MONO_COUNTER_INT|MONO_COUNTER_JIT, &jit_methods_waited);
entry->count = 1;
g_ptr_array_add (compilation_data.in_flight_methods, entry);
add_current_thread (jit_tls);
+
unlock_compilation_data ();
return FALSE;
} else if (jit_tls->active_jit_methods > 0) {
//Dependency management is too compilated and we want to get rid of this anyways.
++entry->count;
++jit_methods_multiple;
+ ++jit_tls->active_jit_methods;
+
unlock_compilation_data ();
return FALSE;
} else {
lock_compilation_data ();
+ g_assert (jit_tls->active_jit_methods > 0);
--jit_tls->active_jit_methods;
if (jit_tls->active_jit_methods == 0)
--compilation_data.active_threads;