mirror of
https://github.com/openjdk/jdk.git
synced 2026-03-18 11:53:17 +00:00
8361705: Clean up KlassCleaningTask
Reviewed-by: shade, ayang
This commit is contained in:
parent
27c58c06cf
commit
fd2ee0844a
@ -95,7 +95,7 @@ void CodeCacheUnloadingTask::work(uint worker_id) {
|
||||
}
|
||||
|
||||
KlassCleaningTask::KlassCleaningTask() :
|
||||
_clean_klass_tree_claimed(0),
|
||||
_clean_klass_tree_claimed(false),
|
||||
_klass_iterator() {
|
||||
}
|
||||
|
||||
@ -104,7 +104,7 @@ bool KlassCleaningTask::claim_clean_klass_tree_task() {
|
||||
return false;
|
||||
}
|
||||
|
||||
return Atomic::cmpxchg(&_clean_klass_tree_claimed, 0, 1) == 0;
|
||||
return !Atomic::cmpxchg(&_clean_klass_tree_claimed, false, true);
|
||||
}
|
||||
|
||||
InstanceKlass* KlassCleaningTask::claim_next_klass() {
|
||||
@ -118,8 +118,6 @@ InstanceKlass* KlassCleaningTask::claim_next_klass() {
|
||||
}
|
||||
|
||||
void KlassCleaningTask::work() {
|
||||
ResourceMark rm;
|
||||
|
||||
// One worker will clean the subklass/sibling klass tree.
|
||||
if (claim_clean_klass_tree_task()) {
|
||||
Klass::clean_weak_klass_links(true /* class_unloading_occurred */, false /* clean_alive_klasses */);
|
||||
|
||||
@ -52,19 +52,16 @@ public:
|
||||
void work(uint worker_id);
|
||||
};
|
||||
|
||||
|
||||
// Cleans out the Klass tree from stale data.
|
||||
class KlassCleaningTask : public StackObj {
|
||||
volatile int _clean_klass_tree_claimed;
|
||||
volatile bool _clean_klass_tree_claimed;
|
||||
ClassLoaderDataGraphKlassIteratorAtomic _klass_iterator;
|
||||
|
||||
public:
|
||||
KlassCleaningTask();
|
||||
|
||||
private:
|
||||
bool claim_clean_klass_tree_task();
|
||||
InstanceKlass* claim_next_klass();
|
||||
|
||||
public:
|
||||
KlassCleaningTask();
|
||||
|
||||
void work();
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user