File tree Expand file tree Collapse file tree 2 files changed +5
-10
lines changed
src/hotspot/share/gc/shared Expand file tree Collapse file tree 2 files changed +5
-10
lines changed Original file line number Diff line number Diff line change @@ -95,7 +95,7 @@ void CodeCacheUnloadingTask::work(uint worker_id) {
95
95
}
96
96
97
97
KlassCleaningTask::KlassCleaningTask () :
98
- _clean_klass_tree_claimed(0 ),
98
+ _clean_klass_tree_claimed(false ),
99
99
_klass_iterator() {
100
100
}
101
101
@@ -104,7 +104,7 @@ bool KlassCleaningTask::claim_clean_klass_tree_task() {
104
104
return false ;
105
105
}
106
106
107
- return Atomic::cmpxchg (&_clean_klass_tree_claimed, 0 , 1 ) == 0 ;
107
+ return ! Atomic::cmpxchg (&_clean_klass_tree_claimed, false , true ) ;
108
108
}
109
109
110
110
InstanceKlass* KlassCleaningTask::claim_next_klass () {
@@ -118,8 +118,6 @@ InstanceKlass* KlassCleaningTask::claim_next_klass() {
118
118
}
119
119
120
120
void KlassCleaningTask::work () {
121
- ResourceMark rm;
122
-
123
121
// One worker will clean the subklass/sibling klass tree.
124
122
if (claim_clean_klass_tree_task ()) {
125
123
Klass::clean_weak_klass_links (true /* class_unloading_occurred */ , false /* clean_alive_klasses */ );
Original file line number Diff line number Diff line change @@ -52,19 +52,16 @@ class CodeCacheUnloadingTask {
52
52
void work (uint worker_id);
53
53
};
54
54
55
-
55
+ // Cleans out the Klass tree from stale data.
56
56
class KlassCleaningTask : public StackObj {
57
- volatile int _clean_klass_tree_claimed;
57
+ volatile bool _clean_klass_tree_claimed;
58
58
ClassLoaderDataGraphKlassIteratorAtomic _klass_iterator;
59
59
60
- public:
61
- KlassCleaningTask ();
62
-
63
- private:
64
60
bool claim_clean_klass_tree_task ();
65
61
InstanceKlass* claim_next_klass ();
66
62
67
63
public:
64
+ KlassCleaningTask ();
68
65
69
66
void work ();
70
67
};
You can’t perform that action at this time.
0 commit comments