< prev index next >

src/hotspot/share/gc/g1/g1CollectionSet.hpp

Print this page

        

*** 276,285 **** --- 276,295 ---- // Start a new collection set increment. void update_incremental_marker() { _inc_build_state = Active; _inc_part_start = _collection_set_cur_length; } // Stop adding regions to the current collection set increment. void stop_incremental_building() { _inc_build_state = Inactive; } + // Iterate the part of the collection set given by the offset and length applying the given + // HeapRegionClosure. The worker_id will determine where in the part to start the iteration + // to allow for more efficient parallel iteration. + void iterate_part_from(HeapRegionClosure* cl, + HeapRegionClaimer* hr_claimer, + size_t offset, + size_t lenght, + uint worker_id, + uint total_workers) const; + // Iterate over the current collection set increment applying the given HeapRegionClosure // from a starting position determined by the given worker id. void iterate_incremental_part_from(HeapRegionClosure* cl, HeapRegionClaimer* hr_claimer, uint worker_id, uint total_workers) const; // Returns the length of the current increment in number of regions.
*** 288,297 **** --- 298,311 ---- size_t cur_length() const { return _collection_set_cur_length; } // Iterate over the entire collection set (all increments calculated so far), applying // the given HeapRegionClosure on all of them. void iterate(HeapRegionClosure* cl) const; + void par_iterate(HeapRegionClosure* cl, + HeapRegionClaimer* hr_claimer, + uint worker_id, + uint total_workers) const; void iterate_optional(HeapRegionClosure* cl) const; size_t recorded_rs_length() { return _recorded_rs_length; }
< prev index next >