src/hotspot/share/gc/shared/parallelCleaning.hpp
changeset 54669 ad45b3802d4e
parent 53536 482109fae02b
child 57510 4db4d0d14390
equal deleted inserted replaced
54668:0bda2308eded 54669:ad45b3802d4e
    85   }
    85   }
    86 
    86 
    87   void work();
    87   void work();
    88 };
    88 };
    89 
    89 
       
    90 #if INCLUDE_JVMCI
       
    91 class JVMCICleaningTask : public StackObj {
       
    92   volatile int       _cleaning_claimed;
       
    93 
       
    94 public:
       
    95   JVMCICleaningTask();
       
    96   // Clean JVMCI metadata handles.
       
    97   void work(bool unloading_occurred);
       
    98 
       
    99 private:
       
   100   bool claim_cleaning_task();
       
   101 };
       
   102 #endif
       
   103 
    90 // Do cleanup of some weakly held data in the same parallel task.
   104 // Do cleanup of some weakly held data in the same parallel task.
    91 // Assumes a non-moving context.
   105 // Assumes a non-moving context.
    92 class ParallelCleaningTask : public AbstractGangTask {
   106 class ParallelCleaningTask : public AbstractGangTask {
    93 private:
   107 private:
    94   bool                    _unloading_occurred;
   108   bool                    _unloading_occurred;
    95   StringDedupCleaningTask _string_dedup_task;
   109   StringDedupCleaningTask _string_dedup_task;
    96   CodeCacheUnloadingTask  _code_cache_task;
   110   CodeCacheUnloadingTask  _code_cache_task;
       
   111 #if INCLUDE_JVMCI
       
   112   JVMCICleaningTask       _jvmci_cleaning_task;
       
   113 #endif
    97   KlassCleaningTask       _klass_cleaning_task;
   114   KlassCleaningTask       _klass_cleaning_task;
    98 
   115 
    99 public:
   116 public:
   100   // The constructor is run in the VMThread.
   117   // The constructor is run in the VMThread.
   101   ParallelCleaningTask(BoolObjectClosure* is_alive,
   118   ParallelCleaningTask(BoolObjectClosure* is_alive,