1.1 --- a/src/share/vm/gc_implementation/g1/concurrentMark.hpp Tue May 03 10:30:34 2011 -0700 1.2 +++ b/src/share/vm/gc_implementation/g1/concurrentMark.hpp Tue May 17 00:56:01 2011 -0700 1.3 @@ -809,10 +809,19 @@ 1.4 1.5 // It indicates that a new collection set is being chosen. 1.6 void newCSet(); 1.7 + 1.8 // It registers a collection set heap region with CM. This is used 1.9 // to determine whether any heap regions are located above the finger. 1.10 void registerCSetRegion(HeapRegion* hr); 1.11 1.12 + // Resets the region fields of any active CMTask whose region fields 1.13 + // are in the collection set (i.e. the region currently claimed by 1.14 + // the CMTask will be evacuated and may be used, subsequently, as 1.15 + // an alloc region). When this happens the region fields in the CMTask 1.16 + // are stale and, hence, should be cleared causing the worker thread 1.17 + // to claim a new region. 1.18 + void reset_active_task_region_fields_in_cset(); 1.19 + 1.20 // Registers the maximum region-end associated with a set of 1.21 // regions with CM. Again this is used to determine whether any 1.22 // heap regions are located above the finger. 1.23 @@ -1039,9 +1048,6 @@ 1.24 void setup_for_region(HeapRegion* hr); 1.25 // it brings up-to-date the limit of the region 1.26 void update_region_limit(); 1.27 - // it resets the local fields after a task has finished scanning a 1.28 - // region 1.29 - void giveup_current_region(); 1.30 1.31 // called when either the words scanned or the refs visited limit 1.32 // has been reached 1.33 @@ -1094,6 +1100,11 @@ 1.34 // exit the termination protocol after it's entered it. 1.35 virtual bool should_exit_termination(); 1.36 1.37 + // Resets the local region fields after a task has finished scanning a 1.38 + // region; or when they have become stale as a result of the region 1.39 + // being evacuated. 1.40 + void giveup_current_region(); 1.41 + 1.42 HeapWord* finger() { return _finger; } 1.43 1.44 bool has_aborted() { return _has_aborted; }