< prev index next >

src/hotspot/share/gc/z/zMark.cpp

Print this page
*** 106,10 ***
--- 106,12 ---
  
    // Increment global sequence number to invalidate
    // marking information for all pages.
    ZGlobalSeqNum++;
  
+   CodeCache::increment_marking_cycle();
+ 
    // Reset flush/continue counters
    _nproactiveflush = 0;
    _nterminateflush = 0;
    _ntrycomplete = 0;
    _ncontinue = 0;

*** 253,10 ***
--- 255,14 ---
    }
  
    virtual void do_oop(narrowOop* p) {
      ShouldNotReachHere();
    }
+ 
+   virtual void do_nmethod(nmethod* nm) {
+     nm->run_nmethod_entry_barrier();
+   }
  };
  
  void ZMark::follow_array_object(objArrayOop obj, bool finalizable) {
    if (finalizable) {
      ZMarkBarrierOopClosure<true /* finalizable */> cl;

*** 677,10 ***
--- 683,11 ---
        return;
      }
  
      if (ZNMethod::is_armed(nm)) {
        ZNMethod::nmethod_oops_do_inner(nm, _cl);
+       nm->mark_as_maybe_on_continuation();
        ZNMethod::disarm(nm);
      }
    }
  };
  

*** 798,10 ***
--- 805,12 ---
    }
  
    // Update statistics
    ZStatMark::set_at_mark_end(_nproactiveflush, _nterminateflush, _ntrycomplete, _ncontinue);
  
+   CodeCache::increment_marking_cycle();
+ 
    // Mark completed
    return true;
  }
  
  void ZMark::free() {
< prev index next >