< prev index next >

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

Print this page




  46     ZPhantomKeepAliveOopClosure keep_alive;
  47     _weak_roots.unlink_or_oops_do(&is_alive, &keep_alive);
  48   }
  49 };
  50 
  51 void ZWeakRootsProcessor::process_weak_roots() {
  52   ZProcessWeakRootsTask task;
  53   _workers->run_parallel(&task);
  54 }
  55 
  56 class ZProcessConcurrentWeakRootsTask : public ZTask {
  57 private:
  58   ZConcurrentWeakRootsIterator _concurrent_weak_roots;
  59 
  60 public:
  61   ZProcessConcurrentWeakRootsTask() :
  62       ZTask("ZProcessConccurentWeakRootsTask"),
  63       _concurrent_weak_roots() {}
  64 
  65   virtual void work() {
  66     ZPhantomCleanOopClosure cleaning_closure;
  67     _concurrent_weak_roots.oops_do(&cleaning_closure);
  68   }
  69 };
  70 
  71 void ZWeakRootsProcessor::process_concurrent_weak_roots() {
  72   ZProcessConcurrentWeakRootsTask task;
  73   _workers->run_concurrent(&task);
  74 }


  46     ZPhantomKeepAliveOopClosure keep_alive;
  47     _weak_roots.unlink_or_oops_do(&is_alive, &keep_alive);
  48   }
  49 };
  50 
  51 void ZWeakRootsProcessor::process_weak_roots() {
  52   ZProcessWeakRootsTask task;
  53   _workers->run_parallel(&task);
  54 }
  55 
  56 class ZProcessConcurrentWeakRootsTask : public ZTask {
  57 private:
  58   ZConcurrentWeakRootsIterator _concurrent_weak_roots;
  59 
  60 public:
  61   ZProcessConcurrentWeakRootsTask() :
  62       ZTask("ZProcessConccurentWeakRootsTask"),
  63       _concurrent_weak_roots() {}
  64 
  65   virtual void work() {
  66     ZPhantomCleanOopClosure cl;
  67     _concurrent_weak_roots.oops_do(&cl);
  68   }
  69 };
  70 
  71 void ZWeakRootsProcessor::process_concurrent_weak_roots() {
  72   ZProcessConcurrentWeakRootsTask task;
  73   _workers->run_concurrent(&task);
  74 }
< prev index next >