diff options
| author | Simon Marlow <simonmarhaskell@gmail.com> | 2008-04-16 23:25:10 +0000 | 
|---|---|---|
| committer | Simon Marlow <simonmarhaskell@gmail.com> | 2008-04-16 23:25:10 +0000 | 
| commit | d564f41560f25c15cd971f167a3c2091f7a05e3f (patch) | |
| tree | d1a5de4b203a7c37b18051939f5e855463814dd6 | |
| parent | e686d8dc6cd67c35132059d0718d1501f0af1e67 (diff) | |
| download | haskell-d564f41560f25c15cd971f167a3c2091f7a05e3f.tar.gz | |
make +RTS -G1 work again
| -rw-r--r-- | rts/sm/GC.c | 22 | 
1 files changed, 7 insertions, 15 deletions
| diff --git a/rts/sm/GC.c b/rts/sm/GC.c index 2b6dbb7dd2..cf6f80715c 100644 --- a/rts/sm/GC.c +++ b/rts/sm/GC.c @@ -420,7 +420,12 @@ GarbageCollect ( rtsBool force_major_gc )  	  thr = gc_threads[t];            // not step 0 -          for (s = 1; s < total_steps; s++) { +          if (RtsFlags.GcFlags.generations == 1) { +              s = 0; +          } else { +              s = 1; +          } +          for (; s < total_steps; s++) {                ws = &thr->steps[s];                // Push the final block @@ -472,19 +477,6 @@ GarbageCollect ( rtsBool force_major_gc )        }    } -  // Two-space collector: swap the semi-spaces around. -  // Currently: g0s0->old_blocks is the old nursery -  //            g0s0->blocks is to-space from this GC -  // We want these the other way around. -  if (RtsFlags.GcFlags.generations == 1) { -      bdescr *nursery_blocks = g0s0->old_blocks; -      nat n_nursery_blocks = g0s0->n_old_blocks; -      g0s0->old_blocks = g0s0->blocks; -      g0s0->n_old_blocks = g0s0->n_blocks; -      g0s0->blocks = nursery_blocks; -      g0s0->n_blocks = n_nursery_blocks; -  } -    /* run through all the generations/steps and tidy up      */    copied = 0; @@ -1439,7 +1431,7 @@ resize_nursery (void)  	 * performance we get from 3L bytes, reducing to the same  	 * performance at 2L bytes.  	 */ -	blocks = g0s0->n_old_blocks; +	blocks = g0s0->n_blocks;  	if ( RtsFlags.GcFlags.maxHeapSize != 0 &&  	     blocks * RtsFlags.GcFlags.oldGenFactor * 2 >  | 
