< prev index next >

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

Print this page
*** 31,10 ***
--- 31,11 ---
  #include "gc/shenandoah/shenandoahNMethod.inline.hpp"
  #include "gc/shenandoah/shenandoahUtils.hpp"
  #include "memory/resourceArea.hpp"
  #include "memory/universe.hpp"
  #include "runtime/atomicAccess.hpp"
+ #include "utilities/events.hpp"
  #include "utilities/powerOfTwo.hpp"
  
  
  ShenandoahNMethodTable* ShenandoahCodeRoots::_nmethod_table;
  int ShenandoahCodeRoots::_disarmed_value = 1;

*** 55,40 ***
  
  void ShenandoahCodeRoots::arm_nmethods() {
    BarrierSet::barrier_set()->barrier_set_nmethod()->arm_all_nmethods();
  }
  
- class ShenandoahDisarmNMethodClosure : public NMethodClosure {
- public:
-   virtual void do_nmethod(nmethod* nm) {
-     ShenandoahNMethod::disarm_nmethod(nm);
-   }
- };
- 
- class ShenandoahDisarmNMethodsTask : public WorkerTask {
- private:
-   ShenandoahDisarmNMethodClosure      _cl;
-   ShenandoahConcurrentNMethodIterator _iterator;
- 
- public:
-   ShenandoahDisarmNMethodsTask() :
-     WorkerTask("Shenandoah Disarm NMethods"),
-     _iterator(ShenandoahCodeRoots::table()) {
-     assert(SafepointSynchronize::is_at_safepoint(), "Only at a safepoint");
-   }
- 
-   virtual void work(uint worker_id) {
-     ShenandoahParallelWorkerSession worker_session(worker_id);
-     _iterator.nmethods_do(&_cl);
-   }
- };
- 
- void ShenandoahCodeRoots::disarm_nmethods() {
-   ShenandoahDisarmNMethodsTask task;
-   ShenandoahHeap::heap()->workers()->run_task(&task);
- }
- 
  class ShenandoahNMethodUnlinkClosure : public NMethodClosure {
  private:
    bool                      _unloading_occurred;
    ShenandoahHeap* const     _heap;
    BarrierSetNMethod* const  _bs;
--- 56,10 ---
< prev index next >