static void add_thread_to_finalize (MonoInternalThread *thread) { mono_finalizer_lock (); if (!threads_to_finalize) MONO_GC_REGISTER_ROOT_SINGLE (threads_to_finalize); threads_to_finalize = mono_mlist_append (threads_to_finalize, (MonoObject*)thread); mono_finalizer_unlock (); }
static void add_thread_to_finalize (MonoInternalThread *thread) { mono_finalizer_lock (); if (!threads_to_finalize) MONO_GC_REGISTER_ROOT_SINGLE (threads_to_finalize, MONO_ROOT_SOURCE_FINALIZER_QUEUE, "finalizable threads list"); threads_to_finalize = mono_mlist_append (threads_to_finalize, (MonoObject*)thread); mono_finalizer_unlock (); }
static gboolean add_thread_to_finalize (MonoInternalThread *thread, MonoError *error) { mono_error_init (error); mono_finalizer_lock (); if (!threads_to_finalize) MONO_GC_REGISTER_ROOT_SINGLE (threads_to_finalize, MONO_ROOT_SOURCE_FINALIZER_QUEUE, "finalizable threads list"); threads_to_finalize = mono_mlist_append_checked (threads_to_finalize, (MonoObject*)thread, error); mono_finalizer_unlock (); return is_ok (error); }
void mono_debugger_initialize (gboolean use_debugger) { MONO_GC_REGISTER_ROOT_SINGLE (last_exception); g_assert (!mono_debugger_use_debugger); InitializeCriticalSection (&debugger_lock_mutex); mono_debugger_use_debugger = use_debugger; initialized = 1; }