mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 19:14:38 +02:00
6692899: CMS: many vm.parallel_class_loading tests fail with assert "missing Printezis mark"
The CMS concurrent precleaning and concurrent marking phases should work around classes that are undergoing redefinition. Reviewed-by: ysr, dcubed
This commit is contained in:
parent
3474623106
commit
c2ff9781c7
18 changed files with 161 additions and 19 deletions
|
@ -606,8 +606,19 @@ class Klass : public Klass_vtbl {
|
|||
#undef assert_same_query
|
||||
|
||||
// Unless overridden, oop is parsable if it has a klass pointer.
|
||||
// Parsability of an object is object specific.
|
||||
virtual bool oop_is_parsable(oop obj) const { return true; }
|
||||
|
||||
// Unless overridden, oop is safe for concurrent GC processing
|
||||
// after its allocation is complete. The exception to
|
||||
// this is the case where objects are changed after allocation.
|
||||
// Class redefinition is one of the known exceptions. During
|
||||
// class redefinition, an allocated class can changed in order
|
||||
// order to create a merged class (the combiniation of the
|
||||
// old class definition that has to be perserved and the new class
|
||||
// definition which is being created.
|
||||
virtual bool oop_is_conc_safe(oop obj) const { return true; }
|
||||
|
||||
// Access flags
|
||||
AccessFlags access_flags() const { return _access_flags; }
|
||||
void set_access_flags(AccessFlags flags) { _access_flags = flags; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue