< prev index next >

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

Print this page
rev 49680 : imported patch 6672778-partial-queue-trimming
rev 49682 : [mq]: 6672778-stefanj-review


  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, bool must_claim_cld) :
  43     _oops(g1h, pss),
  44     _oops_in_cld(g1h, pss),
  45     _clds(&_oops_in_cld, process_only_dirty, must_claim_cld),
  46     _codeblobs(&_oops) {}
  47 
  48   double trim_time_sec() {
  49     return TicksToTimeHelper::seconds(_oops.trim_ticks_and_reset()) +
  50            TicksToTimeHelper::seconds(_oops_in_cld.trim_ticks_and_reset());
  51   }
  52 };


  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, bool must_claim_cld) :
  43     _oops(g1h, pss),
  44     _oops_in_cld(g1h, pss),
  45     _clds(&_oops_in_cld, process_only_dirty, must_claim_cld),
  46     _codeblobs(&_oops) {}





  47 };
< prev index next >