src/hotspot/share/gc/shared/parallelCleaning.hpp
Index Unified diffs Context diffs Sdiffs Frames Patch New Old Previous File Next File open Sdiff src/hotspot/share/gc/shared

src/hotspot/share/gc/shared/parallelCleaning.hpp

Print this page




  70 class KlassCleaningTask : public StackObj {
  71   volatile int                            _clean_klass_tree_claimed;
  72   ClassLoaderDataGraphKlassIteratorAtomic _klass_iterator;
  73 
  74 public:
  75   KlassCleaningTask();
  76 
  77 private:
  78   bool claim_clean_klass_tree_task();
  79   InstanceKlass* claim_next_klass();
  80 
  81 public:
  82 
  83   void clean_klass(InstanceKlass* ik) {
  84     ik->clean_weak_instanceklass_links();
  85   }
  86 
  87   void work();
  88 };
  89 















  90 // Do cleanup of some weakly held data in the same parallel task.
  91 // Assumes a non-moving context.
  92 class ParallelCleaningTask : public AbstractGangTask {
  93 private:
  94   bool                    _unloading_occurred;
  95   StringDedupCleaningTask _string_dedup_task;
  96   CodeCacheUnloadingTask  _code_cache_task;



  97   KlassCleaningTask       _klass_cleaning_task;
  98 
  99 public:
 100   // The constructor is run in the VMThread.
 101   ParallelCleaningTask(BoolObjectClosure* is_alive,
 102                        uint num_workers,
 103                        bool unloading_occurred,
 104                        bool resize_dedup_table);
 105 
 106   void work(uint worker_id);
 107 };
 108 
 109 #endif // SHARE_GC_SHARED_PARALLELCLEANING_HPP


  70 class KlassCleaningTask : public StackObj {
  71   volatile int                            _clean_klass_tree_claimed;
  72   ClassLoaderDataGraphKlassIteratorAtomic _klass_iterator;
  73 
  74 public:
  75   KlassCleaningTask();
  76 
  77 private:
  78   bool claim_clean_klass_tree_task();
  79   InstanceKlass* claim_next_klass();
  80 
  81 public:
  82 
  83   void clean_klass(InstanceKlass* ik) {
  84     ik->clean_weak_instanceklass_links();
  85   }
  86 
  87   void work();
  88 };
  89 
  90 #if INCLUDE_JVMCI
  91 class JVMCICleaningTask : public StackObj {
  92   BoolObjectClosure* _is_alive;
  93   volatile int       _cleaning_claimed;
  94 
  95 public:
  96   JVMCICleaningTask(BoolObjectClosure* is_alive);
  97   // Clean JVMCI metadata handles.
  98   void work(bool unloading_occurred);
  99 
 100 private:
 101   bool claim_cleaning_task();
 102 };
 103 #endif
 104 
 105 // Do cleanup of some weakly held data in the same parallel task.
 106 // Assumes a non-moving context.
 107 class ParallelCleaningTask : public AbstractGangTask {
 108 private:
 109   bool                    _unloading_occurred;
 110   StringDedupCleaningTask _string_dedup_task;
 111   CodeCacheUnloadingTask  _code_cache_task;
 112 #if INCLUDE_JVMCI
 113   JVMCICleaningTask       _jvmci_cleaning_task;
 114 #endif
 115   KlassCleaningTask       _klass_cleaning_task;
 116 
 117 public:
 118   // The constructor is run in the VMThread.
 119   ParallelCleaningTask(BoolObjectClosure* is_alive,
 120                        uint num_workers,
 121                        bool unloading_occurred,
 122                        bool resize_dedup_table);
 123 
 124   void work(uint worker_id);
 125 };
 126 
 127 #endif // SHARE_GC_SHARED_PARALLELCLEANING_HPP
src/hotspot/share/gc/shared/parallelCleaning.hpp
Index Unified diffs Context diffs Sdiffs Frames Patch New Old Previous File Next File