< prev index next >

src/share/vm/gc/g1/g1RemSet.hpp

Print this page
rev 13237 : imported patch 8183226-periodic-rem-set-summary-accesses-uninitialized-stuff
rev 13238 : imported patch 8183226-eridk-sjohanss-review
rev 13239 : imported patch 8183128-cleanup-refinecardtableentryclosure

*** 47,61 **** --- 47,72 ---- class G1SATBCardTableModRefBS; class G1ScanObjsDuringScanRSClosure; class G1ScanObjsDuringUpdateRSClosure; class HeapRegionClaimer; + // Closure used for updating remembered sets and recording references that + // point into the collection set while the mutator is running. + // Assumed to be only executed concurrently with the mutator. Yields via + // SuspendibleThreadSet after every card. + class G1RefineCardConcurrentlyClosure: public CardTableEntryClosure { + public: + bool do_card_ptr(jbyte* card_ptr, uint worker_i); + }; + // A G1RemSet in which each heap region has a rem set that records the // external heap references into it. Uses a mod ref bs to track updates, // so that they can be used to update the individual region remsets. class G1RemSet: public CHeapObj<mtGC> { private: + G1RefineCardConcurrentlyClosure _refine_card_concurrently_cl; + G1RemSetScanState* _scan_state; G1CardLiveData _card_live_data; G1RemSetSummary _prev_period_summary;
*** 125,134 **** --- 136,147 ---- template <class T> void par_write_ref(HeapRegion* from, T* p, uint tid); // Eliminates any remembered set entries that correspond to dead heap ranges. void scrub(uint worker_num, HeapRegionClaimer* hrclaimer); + G1RefineCardConcurrentlyClosure* refine_card_concurrently_closure() { return &_refine_card_concurrently_cl; } + // Refine the card corresponding to "card_ptr". Safe to be called concurrently // to the mutator. void refine_card_concurrently(jbyte* card_ptr, uint worker_i);
< prev index next >