< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahSTWMark.cpp

Print this page
*** 72,11 ***
  void ShenandoahSTWMark::mark() {
    ShenandoahHeap* const heap = ShenandoahHeap::heap();
  
    // Arm all nmethods. Even though this is STW mark, some marking code
    // piggybacks on nmethod barriers for special instances.
!   ShenandoahCodeRoots::arm_nmethods();
  
    // Weak reference processing
    ShenandoahReferenceProcessor* rp = _generation->ref_processor();
    rp->reset_thread_locals();
  
--- 72,11 ---
  void ShenandoahSTWMark::mark() {
    ShenandoahHeap* const heap = ShenandoahHeap::heap();
  
    // Arm all nmethods. Even though this is STW mark, some marking code
    // piggybacks on nmethod barriers for special instances.
!   CodeCache::arm_all_nmethods();
  
    // Weak reference processing
    ShenandoahReferenceProcessor* rp = _generation->ref_processor();
    rp->reset_thread_locals();
  

*** 113,13 ***
    }
  
    _generation->set_mark_complete();
    end_mark();
  
-   // Mark is finished, can disarm the nmethods now.
-   ShenandoahCodeRoots::disarm_nmethods();
- 
    assert(task_queues()->is_empty(), "Should be empty");
    TASKQUEUE_STATS_ONLY(task_queues()->print_and_reset_taskqueue_stats(""));
  }
  
  void ShenandoahSTWMark::mark_roots(uint worker_id) {
--- 113,10 ---
< prev index next >