comparison src/share/vm/oops/klass.hpp @ 518:0af8b0718fc9

6692899: CMS: many vm.parallel_class_loading tests fail with assert "missing Printezis mark" Summary: The CMS concurrent precleaning and concurrent marking phases should work around classes that are undergoing redefinition. Reviewed-by: ysr, dcubed
author jmasa
date Sun, 11 Jan 2009 16:58:24 -0800
parents 1ee8caae33af
children 0fbdb4381b99 98cb887364d3
comparison
equal deleted inserted replaced
517:e9be0e04635a 518:0af8b0718fc9
604 layout_helper_is_typeArray(layout_helper()), 604 layout_helper_is_typeArray(layout_helper()),
605 oop_is_typeArray_slow()); } 605 oop_is_typeArray_slow()); }
606 #undef assert_same_query 606 #undef assert_same_query
607 607
608 // Unless overridden, oop is parsable if it has a klass pointer. 608 // Unless overridden, oop is parsable if it has a klass pointer.
609 // Parsability of an object is object specific.
609 virtual bool oop_is_parsable(oop obj) const { return true; } 610 virtual bool oop_is_parsable(oop obj) const { return true; }
611
612 // Unless overridden, oop is safe for concurrent GC processing
613 // after its allocation is complete. The exception to
614 // this is the case where objects are changed after allocation.
615 // Class redefinition is one of the known exceptions. During
616 // class redefinition, an allocated class can changed in order
617 // order to create a merged class (the combiniation of the
618 // old class definition that has to be perserved and the new class
619 // definition which is being created.
620 virtual bool oop_is_conc_safe(oop obj) const { return true; }
610 621
611 // Access flags 622 // Access flags
612 AccessFlags access_flags() const { return _access_flags; } 623 AccessFlags access_flags() const { return _access_flags; }
613 void set_access_flags(AccessFlags flags) { _access_flags = flags; } 624 void set_access_flags(AccessFlags flags) { _access_flags = flags; }
614 625