diff options
author | Simon Marlow <marlowsd@gmail.com> | 2009-11-29 16:42:51 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2009-11-29 16:42:51 +0000 |
commit | f9d15f9fccae4706fbdf8ee4ecaef7da9953cb74 (patch) | |
tree | ef79be277cf14c25b93739c420b7b2386f5562d4 /rts/Schedule.c | |
parent | 9ca114a5840d8d00320e90c047022fa2ca1fa668 (diff) | |
download | haskell-f9d15f9fccae4706fbdf8ee4ecaef7da9953cb74.tar.gz |
Store a destination step in the block descriptor
At the moment, this just saves a memory reference in the GC inner loop
(worth a percent or two of GC time). Later, it will hopefully let me
experiment with partial steps, and simplifying the generation/step
infrastructure.
Diffstat (limited to 'rts/Schedule.c')
-rw-r--r-- | rts/Schedule.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/rts/Schedule.c b/rts/Schedule.c index dbee436a68..c377974dca 100644 --- a/rts/Schedule.c +++ b/rts/Schedule.c @@ -1118,8 +1118,8 @@ scheduleHandleHeapOverflow( Capability *cap, StgTSO *t ) { bdescr *x; for (x = bd; x < bd + blocks; x++) { - x->step = cap->r.rNursery; - x->gen_no = 0; + initBdescr(x,cap->r.rNursery); + x->free = x->start; x->flags = 0; } } |