[svn:parrot] r49569 - branches/generational_gc/src/gc

bacek at svn.parrot.org bacek at svn.parrot.org
Mon Oct 18 12:07:53 UTC 2010


Author: bacek
Date: Mon Oct 18 12:07:53 2010
New Revision: 49569
URL: https://trac.parrot.org/parrot/changeset/49569

Log:
Switch on m&s of oldes generation. Introduce few new core test failures

Modified:
   branches/generational_gc/src/gc/gc_ms2.c

Modified: branches/generational_gc/src/gc/gc_ms2.c
==============================================================================
--- branches/generational_gc/src/gc/gc_ms2.c	Mon Oct 18 11:57:13 2010	(r49568)
+++ branches/generational_gc/src/gc/gc_ms2.c	Mon Oct 18 12:07:53 2010	(r49569)
@@ -656,7 +656,7 @@
     /* Which generation we are going to collect? */
     /* TODO Use less naive approach. E.g. count amount of allocated memory in
      * older generations */
-    if (0 && interp->gc_sys->stats.gc_mark_runs % 100 == 0)
+    if (interp->gc_sys->stats.gc_mark_runs % 100 == 0)
         gen = self->current_generation = 2;
     else if (interp->gc_sys->stats.gc_mark_runs % 10 == 0)
         gen = self->current_generation = 1;
@@ -732,9 +732,8 @@
      * 3. Destroy everything else.
      */
 
-    /* FIXME There is no generation beyond 2. We have to handle it
-             differently */
-    for (i = gen; i >= 0; i--) {
+    /* There is no generation beyond 2. We have to handle it differentely */
+    for (i = gen == 2 ? 1 : gen; i >= 0; i--) {
         tmp = self->objects[i]->first;
         while (tmp) {
             PMC                 *pmc = LLH2Obj_typed(tmp, PMC);
@@ -1506,6 +1505,8 @@
     pmc->flags |= gen2flags(self->current_generation);
 
     pmc->flags |= PObj_GC_generation_2_FLAG;
+
+    PObj_live_SET(pmc);
 }
 
 static void


More information about the parrot-commits mailing list