Merge pull request #5428 from kumpera/wasm-support-p2
[mono.git] / mono / sgen / sgen-fin-weak-hash.c
index aa4adce637c1978fdb3dc68331f10c99a49fa1c2..e227281c12d96e0d45b2d49fd6f557e9d24afaee 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * sgen-fin-weak-hash.c: Finalizers and weak links.
+/**
+ * \file
+ * Finalizers and weak links.
  *
  * Author:
  *     Paolo Molaro (lupus@ximian.com)
@@ -558,13 +559,13 @@ sgen_object_register_for_finalization (GCObject *obj, void *user_data)
 
 /* LOCKING: requires that the GC lock is held */
 static void
-finalize_with_predicate (SgenObjectPredicateFunc predicate, void *user_data, volatile gboolean *suspend, SgenHashTable *hash_table)
+finalize_with_predicate (SgenObjectPredicateFunc predicate, void *user_data, SgenHashTable *hash_table)
 {
        GCObject *object;
        gpointer dummy G_GNUC_UNUSED;
 
        if (no_finalize)
-               return 0;
+               return;
        SGEN_HASH_TABLE_FOREACH (hash_table, GCObject *, object, gpointer, dummy) {
                object = tagged_object_get_object (object);
 
@@ -575,7 +576,7 @@ finalize_with_predicate (SgenObjectPredicateFunc predicate, void *user_data, vol
                        SGEN_LOG (5, "Enqueuing object for finalization: %p (%s) (%d)", object, sgen_client_vtable_get_name (SGEN_LOAD_VTABLE (object)), sgen_hash_table_num_entries (hash_table));
                }
 
-               if (*suspend)
+               if (sgen_suspend_finalizers)
                        break;
        } SGEN_HASH_TABLE_FOREACH_END;
 }
@@ -597,12 +598,12 @@ finalize_with_predicate (SgenObjectPredicateFunc predicate, void *user_data, vol
  * objects are still alive.
  */
 void
-sgen_finalize_if (SgenObjectPredicateFunc predicate, void *user_data, volatile gboolean *suspend)
+sgen_finalize_if (SgenObjectPredicateFunc predicate, void *user_data)
 {
        LOCK_GC;
        sgen_process_fin_stage_entries ();
-       finalize_with_predicate (predicate, user_data, suspend, &minor_finalizable_hash);
-       finalize_with_predicate (predicate, user_data, suspend, &major_finalizable_hash);
+       finalize_with_predicate (predicate, user_data, &minor_finalizable_hash);
+       finalize_with_predicate (predicate, user_data, &major_finalizable_hash);
        UNLOCK_GC;
 }