equal
deleted
inserted
replaced
334 // GC interface. |
334 // GC interface. |
335 void clear_claimed() { _claimed = 0; } |
335 void clear_claimed() { _claimed = 0; } |
336 bool claimed() const { return _claimed == 1; } |
336 bool claimed() const { return _claimed == 1; } |
337 bool claim(); |
337 bool claim(); |
338 |
338 |
|
339 // Computes if the CLD is alive or not. This is safe to call in concurrent |
|
340 // contexts. |
339 bool is_alive() const; |
341 bool is_alive() const; |
340 |
342 |
341 // Accessors |
343 // Accessors |
342 ClassLoaderMetaspace* metaspace_or_null() const { return _metaspace; } |
344 ClassLoaderMetaspace* metaspace_or_null() const { return _metaspace; } |
343 |
345 |
375 ClassLoaderMetaspace* metaspace_non_null(); |
377 ClassLoaderMetaspace* metaspace_non_null(); |
376 |
378 |
377 inline oop class_loader() const; |
379 inline oop class_loader() const; |
378 |
380 |
379 // Returns true if this class loader data is for a loader going away. |
381 // Returns true if this class loader data is for a loader going away. |
|
382 // Note that this is only safe after the GC has computed if the CLD is |
|
383 // unloading or not. In concurrent contexts where there are no such |
|
384 // guarantees, is_alive() should be used instead. |
380 bool is_unloading() const { |
385 bool is_unloading() const { |
381 assert(!(is_the_null_class_loader_data() && _unloading), "The null class loader can never be unloaded"); |
386 assert(!(is_the_null_class_loader_data() && _unloading), "The null class loader can never be unloaded"); |
382 return _unloading; |
387 return _unloading; |
383 } |
388 } |
384 |
389 |