< prev index next >

src/hotspot/share/jfr/leakprofiler/utilities/saveRestore.cpp

Print this page




  87   swap(rhs);
  88 }
  89 
  90 void CLDClaimContext::swap(CLDClaimContext& rhs) {
  91   ClassLoaderData* temp_cld = rhs._cld;
  92   rhs._cld = _cld;
  93   _cld = temp_cld;
  94 }
  95 
  96 CLDClaimStateClosure::CLDClaimStateClosure() : CLDClosure(), _state() {}
  97 
  98 void CLDClaimStateClosure::do_cld(ClassLoaderData* cld) {
  99   assert(cld != NULL, "invariant");
 100   if (cld->claimed()) {
 101     _state.save(cld);
 102   }
 103 }
 104 
 105 SaveRestoreCLDClaimBits::SaveRestoreCLDClaimBits() : _claim_state_closure() {
 106   // interferes with GC, so walk all oops that GC would.
 107   ClassLoaderDataGraph::cld_oops_do(&_claim_state_closure);
 108 }
 109 
 110 SaveRestoreCLDClaimBits::~SaveRestoreCLDClaimBits() {
 111   ClassLoaderDataGraph::clear_claimed_marks();
 112 }


  87   swap(rhs);
  88 }
  89 
  90 void CLDClaimContext::swap(CLDClaimContext& rhs) {
  91   ClassLoaderData* temp_cld = rhs._cld;
  92   rhs._cld = _cld;
  93   _cld = temp_cld;
  94 }
  95 
  96 CLDClaimStateClosure::CLDClaimStateClosure() : CLDClosure(), _state() {}
  97 
  98 void CLDClaimStateClosure::do_cld(ClassLoaderData* cld) {
  99   assert(cld != NULL, "invariant");
 100   if (cld->claimed()) {
 101     _state.save(cld);
 102   }
 103 }
 104 
 105 SaveRestoreCLDClaimBits::SaveRestoreCLDClaimBits() : _claim_state_closure() {
 106   // interferes with GC, so walk all oops that GC would.
 107   ClassLoaderDataGraph::cld_do(&_claim_state_closure);
 108 }
 109 
 110 SaveRestoreCLDClaimBits::~SaveRestoreCLDClaimBits() {
 111   ClassLoaderDataGraph::clear_claimed_marks();
 112 }
< prev index next >