< prev index next >

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

CLD claiming

21  *                                                                                                                                   
22  */                                                                                                                                  
23 
24 #include "gc/g1/g1CodeBlobClosure.hpp"                                                                                               
25 #include "gc/g1/g1OopClosures.hpp"                                                                                                   
26 #include "memory/iterator.hpp"                                                                                                       
27 
28 class G1CollectedHeap;                                                                                                               
29 class G1ParScanThreadState;                                                                                                          
30 
31 // Simple holder object for a complete set of closures used by the G1 evacuation code.                                               
32 template <G1Mark Mark>                                                                                                               
33 class G1SharedClosures {                                                                                                             
34 public:                                                                                                                              
35   G1ParCopyClosure<G1BarrierNone, Mark> _oops;                                                                                       
36   G1ParCopyClosure<G1BarrierCLD,  Mark> _oops_in_cld;                                                                                
37 
38   G1CLDScanClosure                _clds;                                                                                             
39   G1CodeBlobClosure               _codeblobs;                                                                                        
40 
41   G1SharedClosures(G1CollectedHeap* g1h, G1ParScanThreadState* pss, bool process_only_dirty, bool must_claim_cld) :                  
42     _oops(g1h, pss),                                                                                                                 
43     _oops_in_cld(g1h, pss),                                                                                                          
44     _clds(&_oops_in_cld, process_only_dirty, must_claim_cld),                                                                        
45     _codeblobs(&_oops) {}                                                                                                            
46 };                                                                                                                                   

21  *
22  */
23 
24 #include "gc/g1/g1CodeBlobClosure.hpp"
25 #include "gc/g1/g1OopClosures.hpp"
26 #include "memory/iterator.hpp"
27 
28 class G1CollectedHeap;
29 class G1ParScanThreadState;
30 
31 // Simple holder object for a complete set of closures used by the G1 evacuation code.
32 template <G1Mark Mark>
33 class G1SharedClosures {
34 public:
35   G1ParCopyClosure<G1BarrierNone, Mark> _oops;
36   G1ParCopyClosure<G1BarrierCLD,  Mark> _oops_in_cld;
37 
38   G1CLDScanClosure                _clds;
39   G1CodeBlobClosure               _codeblobs;
40 
41   G1SharedClosures(G1CollectedHeap* g1h, G1ParScanThreadState* pss, bool process_only_dirty, int cld_claim_value) :
42     _oops(g1h, pss),
43     _oops_in_cld(g1h, pss),
44     _clds(&_oops_in_cld, process_only_dirty, cld_claim_value),
45     _codeblobs(&_oops) {}
46 };
< prev index next >