equal
deleted
inserted
replaced
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, |