Changes between Version 3 and Version 4 of Commentary/Rts/Storage/GC/RememberedSets
- Timestamp:
- 12/04/09 08:10:40 (3 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Commentary/Rts/Storage/GC/RememberedSets
v3 v4 91 91 During GC, the principle of write barriers is quite similar: whenever we create an old-to-new pointer, we have to record it in the remembered set. The GC achieves this as follows: 92 92 93 * The GC thread structure has a field `gc _thread->evac_gen` which specifies the desired destination generation.94 * there is a flag `gc _thread->failed_to_evac`, which is set to true by `evacuate` if it did not manage to evacuate93 * The GC thread structure has a field `gct->evac_gen` which specifies the desired destination generation. 94 * there is a flag `gct->failed_to_evac`, which is set to true by `evacuate` if it did not manage to evacuate 95 95 the object into the desired generation. 96 * after scavenging an object, `scavenge_block` checks the `failed_to_evac` flag, (ToDO: continue) 96 * after scavenging an object, `scavenge_block` checks the `failed_to_evac` flag, and if it is set, adds the object to the remembered set, using `recordMutableGen_GC()` (the equivalent of `recordMutableCap` for calling within the GC). 97 98
