Changes between Version 3 and Version 4 of Commentary/Rts/Storage/GC/RememberedSets


Ignore:
Timestamp:
Dec 4, 2009 4:10:40 PM (6 years ago)
Author:
simonmar
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Rts/Storage/GC/RememberedSets

    v3 v4  
    9191During 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:
    9292
    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 evacuate
     93 * 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
    9595   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