Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mono/metadata/threads.c3
-rw-r--r--mono/utils/mono-threads.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/mono/metadata/threads.c b/mono/metadata/threads.c
index 5bca4f0ab73..e5ab853cd3c 100644
--- a/mono/metadata/threads.c
+++ b/mono/metadata/threads.c
@@ -3008,6 +3008,7 @@ thread_detach (MonoThreadInfo *info)
* the thread */
g_assert (info);
+ g_assert (mono_thread_info_is_current (info));
if (!mono_thread_info_try_get_internal_thread_gchandle (info, &gchandle))
return;
@@ -3015,8 +3016,6 @@ thread_detach (MonoThreadInfo *info)
internal = (MonoInternalThread*) mono_gchandle_get_target (gchandle);
g_assert (internal);
- mono_gchandle_free (gchandle);
-
mono_thread_detach_internal (internal);
}
diff --git a/mono/utils/mono-threads.c b/mono/utils/mono-threads.c
index d41724d7a6f..4e77d0d5582 100644
--- a/mono/utils/mono-threads.c
+++ b/mono/utils/mono-threads.c
@@ -685,6 +685,7 @@ gboolean
mono_thread_info_try_get_internal_thread_gchandle (MonoThreadInfo *info, guint32 *gchandle)
{
g_assert (info);
+ g_assert (mono_thread_info_is_current (info));
if (info->internal_thread_gchandle == G_MAXUINT32)
return FALSE;
@@ -697,6 +698,7 @@ void
mono_thread_info_set_internal_thread_gchandle (MonoThreadInfo *info, guint32 gchandle)
{
g_assert (info);
+ g_assert (mono_thread_info_is_current (info));
g_assert (gchandle != G_MAXUINT32);
info->internal_thread_gchandle = gchandle;
}
@@ -705,6 +707,7 @@ void
mono_thread_info_unset_internal_thread_gchandle (THREAD_INFO_TYPE *info)
{
g_assert (info);
+ g_assert (mono_thread_info_is_current (info));
info->internal_thread_gchandle = G_MAXUINT32;
}