8193933: Export ClassLoaderData claim state to support interleaved object traversal

Reviewed-by: coleenp, hseigel
This commit is contained in:
Markus Grönlund 2018-01-15 13:09:50 +01:00
parent b9cffe68c2
commit 5cd5f1d9a1

View file

@ -279,11 +279,6 @@ class ClassLoaderData : public CHeapObj<mtClass> {
ClassLoaderData(Handle h_class_loader, bool is_anonymous, Dependencies dependencies); ClassLoaderData(Handle h_class_loader, bool is_anonymous, Dependencies dependencies);
~ClassLoaderData(); ~ClassLoaderData();
// GC interface.
void clear_claimed() { _claimed = 0; }
bool claimed() const { return _claimed == 1; }
bool claim();
// The CLD are not placed in the Heap, so the Card Table or // The CLD are not placed in the Heap, so the Card Table or
// the Mod Union Table can't be used to mark when CLD have modified oops. // the Mod Union Table can't be used to mark when CLD have modified oops.
// The CT and MUT bits saves this information for the whole class loader data. // The CT and MUT bits saves this information for the whole class loader data.
@ -315,6 +310,10 @@ class ClassLoaderData : public CHeapObj<mtClass> {
Dictionary* create_dictionary(); Dictionary* create_dictionary();
public: public:
// GC interface.
void clear_claimed() { _claimed = 0; }
bool claimed() const { return _claimed == 1; }
bool claim();
bool is_alive(BoolObjectClosure* is_alive_closure) const; bool is_alive(BoolObjectClosure* is_alive_closure) const;