src/share/vm/gc_implementation/g1/concurrentMark.hpp

Print this page

        

*** 807,820 **** --- 807,829 ---- void complete_marking_in_collection_set(); // It indicates that a new collection set is being chosen. void newCSet(); + // It registers a collection set heap region with CM. This is used // to determine whether any heap regions are located above the finger. void registerCSetRegion(HeapRegion* hr); + // Resets the region fields of any active CMTask whose region fields + // are in the collection set (i.e. the region currently claimed by + // the CMTask will be evacuated and may be used, subsequently, as + // an alloc region). When this happens the region fields in the CMTask + // are stale and, hence, should be cleared causing the worker thread + // to claim a new region. + void reset_active_task_region_fields_in_cset(); + // Registers the maximum region-end associated with a set of // regions with CM. Again this is used to determine whether any // heap regions are located above the finger. void register_collection_set_finger(HeapWord* max_finger) { // max_finger is the highest heap region end of the regions currently
*** 1037,1049 **** // it updates the local fields after this task has claimed // a new region to scan void setup_for_region(HeapRegion* hr); // it brings up-to-date the limit of the region void update_region_limit(); - // it resets the local fields after a task has finished scanning a - // region - void giveup_current_region(); // called when either the words scanned or the refs visited limit // has been reached void reached_limit(); // recalculates the words scanned and refs visited limits --- 1046,1055 ----
*** 1092,1101 **** --- 1098,1112 ---- // From TerminatorTerminator. It determines whether this task should // exit the termination protocol after it's entered it. virtual bool should_exit_termination(); + // Resets the local region fields after a task has finished scanning a + // region; or when they have become stale as a result of the region + // being evacuated. + void giveup_current_region(); + HeapWord* finger() { return _finger; } bool has_aborted() { return _has_aborted; } void set_has_aborted() { _has_aborted = true; } void clear_has_aborted() { _has_aborted = false; }