comparison src/share/vm/oops/instanceKlass.hpp @ 7587:4a916f2ce331

8003985: Support @Contended Annotation - JEP 142 Summary: HotSpot changes to support @Contended annotation. Reviewed-by: coleenp, kvn, jrose Contributed-by: Aleksey Shipilev <aleksey.shipilev@oracle.com>
author jwilhelm
date Mon, 14 Jan 2013 15:17:47 +0100
parents 37a3e8b7a1e9
children 212c5b9c38e7
comparison
equal deleted inserted replaced
7586:90a92d5bca17 7587:4a916f2ce331
228 bool _is_marked_dependent; // used for marking during flushing and deoptimization 228 bool _is_marked_dependent; // used for marking during flushing and deoptimization
229 enum { 229 enum {
230 _misc_rewritten = 1 << 0, // methods rewritten. 230 _misc_rewritten = 1 << 0, // methods rewritten.
231 _misc_has_nonstatic_fields = 1 << 1, // for sizing with UseCompressedOops 231 _misc_has_nonstatic_fields = 1 << 1, // for sizing with UseCompressedOops
232 _misc_should_verify_class = 1 << 2, // allow caching of preverification 232 _misc_should_verify_class = 1 << 2, // allow caching of preverification
233 _misc_is_anonymous = 1 << 3 // has embedded _inner_classes field 233 _misc_is_anonymous = 1 << 3, // has embedded _inner_classes field
234 _misc_is_contended = 1 << 4 // marked with contended annotation
234 }; 235 };
235 u2 _misc_flags; 236 u2 _misc_flags;
236 u2 _minor_version; // minor version number of class file 237 u2 _minor_version; // minor version number of class file
237 u2 _major_version; // major version number of class file 238 u2 _major_version; // major version number of class file
238 Thread* _init_thread; // Pointer to current thread doing initialization (to handle recusive initialization) 239 Thread* _init_thread; // Pointer to current thread doing initialization (to handle recusive initialization)
548 // in places where the metadata is stored in other places, like nmethods 549 // in places where the metadata is stored in other places, like nmethods
549 oop klass_holder() const { 550 oop klass_holder() const {
550 return is_anonymous() ? java_mirror() : class_loader(); 551 return is_anonymous() ? java_mirror() : class_loader();
551 } 552 }
552 553
554 bool is_contended() const {
555 return (_misc_flags & _misc_is_contended) != 0;
556 }
557 void set_is_contended(bool value) {
558 if (value) {
559 _misc_flags |= _misc_is_contended;
560 } else {
561 _misc_flags &= ~_misc_is_contended;
562 }
563 }
564
553 // signers 565 // signers
554 objArrayOop signers() const { return _signers; } 566 objArrayOop signers() const { return _signers; }
555 void set_signers(objArrayOop s) { klass_oop_store((oop*)&_signers, s); } 567 void set_signers(objArrayOop s) { klass_oop_store((oop*)&_signers, s); }
556 568
557 // source file name 569 // source file name