2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
authorGonzalo Paniagua Javier <gonzalo.mono@gmail.com>
Fri, 5 May 2006 20:45:02 +0000 (20:45 -0000)
committerGonzalo Paniagua Javier <gonzalo.mono@gmail.com>
Fri, 5 May 2006 20:45:02 +0000 (20:45 -0000)
* assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
behavior was changed recently and has bad side effects.

svn path=/trunk/mono/; revision=60341

mono/metadata/ChangeLog
mono/metadata/assembly.c

index 7b2a62471e9a7a77096f5dc95edca4bb9b68daed..4bf66acd6022418a393a4483a11ddaed318e4716 100644 (file)
@@ -1,3 +1,8 @@
+2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
+       behavior was changed recently and has bad side effects.
+
 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
 
        * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
index 36d2e28d50ca07d6e1a3bd07d39b10b0b6b44e58..fa096c93d05b08af3824f88caa062fc07374ca22 100644 (file)
@@ -377,7 +377,7 @@ search_loaded (MonoAssemblyName* aname, gboolean refonly)
         * The assembly might be under load by this thread. In this case, it is
         * safe to return an incomplete instance to prevent loops.
         */
-       loading = g_hash_table_lookup (refonly ? assemblies_refonly_loading : assemblies_loading, GetCurrentThread ());
+       loading = g_hash_table_lookup (refonly ? assemblies_refonly_loading : assemblies_loading, GetCurrentThreadId ());
        for (tmp = loading; tmp; tmp = tmp->next) {
                ass = tmp->data;
                if (!mono_assembly_names_equal (aname, &ass->aname))
@@ -1405,9 +1405,9 @@ mono_assembly_load_from_full (MonoImage *image, const char*fname,
                }
        }
        ass_loading = refonly ? assemblies_refonly_loading : assemblies_loading;
-       loading = g_hash_table_lookup (ass_loading, GetCurrentThread ());
+       loading = g_hash_table_lookup (ass_loading, GetCurrentThreadId ());
        loading = g_list_prepend (loading, ass);
-       g_hash_table_insert (ass_loading, GetCurrentThread (), loading);
+       g_hash_table_insert (ass_loading, GetCurrentThreadId (), loading);
        mono_assemblies_unlock ();
 
        g_assert (image->assembly == NULL);
@@ -1417,13 +1417,13 @@ mono_assembly_load_from_full (MonoImage *image, const char*fname,
 
        mono_assemblies_lock ();
 
-       loading = g_hash_table_lookup (ass_loading, GetCurrentThread ());
+       loading = g_hash_table_lookup (ass_loading, GetCurrentThreadId ());
        loading = g_list_remove (loading, ass);
        if (loading == NULL)
                /* Prevent memory leaks */
-               g_hash_table_remove (ass_loading, GetCurrentThread ());
+               g_hash_table_remove (ass_loading, GetCurrentThreadId ());
        else
-               g_hash_table_insert (ass_loading, GetCurrentThread (), loading);
+               g_hash_table_insert (ass_loading, GetCurrentThreadId (), loading);
        if (*status != MONO_IMAGE_OK) {
                mono_assemblies_unlock ();
                mono_assembly_close (ass);