From 02f9d266351319627e274281ecc41b2ff451e088 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Mon, 12 Dec 2016 18:57:07 -0500 Subject: [PATCH] [threads] Destroy thread->suspended before removing the GC root to thread (#4133) --- mono/metadata/threads.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mono/metadata/threads.c b/mono/metadata/threads.c index 953a2315008..84649c6f9de 100644 --- a/mono/metadata/threads.c +++ b/mono/metadata/threads.c @@ -1113,6 +1113,11 @@ mono_thread_detach_internal (MonoInternalThread *thread) ref_stack_destroy (thread->appdomain_refs); thread->appdomain_refs = NULL; + g_assert (thread->suspended); + mono_os_event_destroy (thread->suspended); + g_free (thread->suspended); + thread->suspended = NULL; + if (mono_thread_cleanup_fn) mono_thread_cleanup_fn (thread_get_tid (thread)); @@ -1121,11 +1126,6 @@ mono_thread_detach_internal (MonoInternalThread *thread) thread->thread_pinning_ref = NULL; } - g_assert (thread->suspended); - mono_os_event_destroy (thread->suspended); - g_free (thread->suspended); - thread->suspended = NULL; - done: SET_CURRENT_OBJECT (NULL); mono_domain_unset (); -- 2.25.1