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


Ignore:
Timestamp:
Dec 4, 2009 4:10:40 PM (4 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