< prev index next >

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

Print this page
rev 56301 : imported patch 8159984-slow


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


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