[Gd-chatter] r11427 - trunk/fundev/sources/dfmc/c-run-time

hannes at gwydiondylan.org hannes at gwydiondylan.org
Mon Jul 30 13:47:55 CEST 2007


Author: hannes
Date: Mon Jul 30 13:47:54 2007
New Revision: 11427

Modified:
   trunk/fundev/sources/dfmc/c-run-time/run-time.c
Log:
Job: fd

added comment from bruce to the code... it may help at some day.


Modified: trunk/fundev/sources/dfmc/c-run-time/run-time.c
==============================================================================
--- trunk/fundev/sources/dfmc/c-run-time/run-time.c	(original)
+++ trunk/fundev/sources/dfmc/c-run-time/run-time.c	Mon Jul 30 13:47:54 2007
@@ -100,6 +100,11 @@
   struct _mps_finalization_queue *rest;
 } * mps_finalization_queue = NULL;
 
+/* XXX: [by bruce hoult via mail on 30 July 2007]
+> this does a GC_NEW() from within the finalizer, which is called
+> from within the GC.  Therefore the GC is entered recursively.  This is
+> very very bad and will bite you one day and you won't know why.
+*/
 static void mps_finalization_proc(D obj, void *data) {
   struct _mps_finalization_queue *new_finalization_queue =
     GC_NEW(struct _mps_finalization_queue);



More information about the chatter mailing list