return(result);
}
+word GC_fo_entries = 0; /* used also in extra/MacOS.c */
+
GC_INNER unsigned GC_fail_count = 0;
/* How many consecutive GC/expansion failures? */
/* Reset by GC_allochblk. */
#include "private/gc_pmark.h"
-#ifdef FINALIZE_ON_DEMAND
- int GC_finalize_on_demand = 1;
-#else
- int GC_finalize_on_demand = 0;
-#endif
-
-#ifdef JAVA_FINALIZATION
- int GC_java_finalization = 1;
-#else
- int GC_java_finalization = 0;
-#endif
-
/* Type of mark procedure used for marking from finalizable object. */
/* This procedure normally does not mark the object, only its */
/* descendents. */
static signed_word log_fo_table_size = -1;
-word GC_fo_entries = 0; /* used also in extra/MacOS.c */
-
GC_INNER void GC_push_finalizer_structures(void)
{
GC_push_all((ptr_t)(&dl_head), (ptr_t)(&dl_head) + sizeof(word));
return count;
}
-/* All accesses to it should be synchronized to avoid data races. */
-GC_finalizer_notifier_proc GC_finalizer_notifier =
- (GC_finalizer_notifier_proc)0;
-
static GC_word last_finalizer_notification = 0;
GC_INNER void GC_notify_or_invoke_finalizers(void)
int GC_all_interior_pointers = 0;
#endif
+#ifdef FINALIZE_ON_DEMAND
+ int GC_finalize_on_demand = 1;
+#else
+ int GC_finalize_on_demand = 0;
+#endif
+
+#ifdef JAVA_FINALIZATION
+ int GC_java_finalization = 1;
+#else
+ int GC_java_finalization = 0;
+#endif
+
+/* All accesses to it should be synchronized to avoid data races. */
+GC_finalizer_notifier_proc GC_finalizer_notifier =
+ (GC_finalizer_notifier_proc)0;
+
#ifdef GC_FORCE_UNMAP_ON_GCOLLECT
/* Has no effect unless USE_MUNMAP. */
/* Has no effect on implicitly-initiated garbage collections. */