Mercurial > hg > graal-jvmci-8
comparison src/share/vm/oops/constMethodOop.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 | a61af66fc99e |
children | 0fbdb4381b99 |
comparison
equal
deleted
inserted
replaced
517:e9be0e04635a | 518:0af8b0718fc9 |
---|---|
102 // -1=too many args to fix, must parse the slow way. | 102 // -1=too many args to fix, must parse the slow way. |
103 // The real initial value is special to account for nonatomicity of 64 bit | 103 // The real initial value is special to account for nonatomicity of 64 bit |
104 // loads and stores. This value may updated and read without a lock by | 104 // loads and stores. This value may updated and read without a lock by |
105 // multiple threads, so is volatile. | 105 // multiple threads, so is volatile. |
106 volatile uint64_t _fingerprint; | 106 volatile uint64_t _fingerprint; |
107 volatile bool _is_conc_safe; // if true, safe for concurrent GC processing | |
107 | 108 |
108 public: | 109 public: |
109 oop* oop_block_beg() const { return adr_method(); } | 110 oop* oop_block_beg() const { return adr_method(); } |
110 oop* oop_block_end() const { return adr_exception_table() + 1; } | 111 oop* oop_block_end() const { return adr_exception_table() + 1; } |
111 | 112 |
271 | 272 |
272 // Garbage collection support | 273 // Garbage collection support |
273 oop* adr_method() const { return (oop*)&_method; } | 274 oop* adr_method() const { return (oop*)&_method; } |
274 oop* adr_stackmap_data() const { return (oop*)&_stackmap_data; } | 275 oop* adr_stackmap_data() const { return (oop*)&_stackmap_data; } |
275 oop* adr_exception_table() const { return (oop*)&_exception_table; } | 276 oop* adr_exception_table() const { return (oop*)&_exception_table; } |
277 bool is_conc_safe() { return _is_conc_safe; } | |
278 void set_is_conc_safe(bool v) { _is_conc_safe = v; } | |
276 | 279 |
277 // Unique id for the method | 280 // Unique id for the method |
278 static const u2 MAX_IDNUM; | 281 static const u2 MAX_IDNUM; |
279 static const u2 UNSET_IDNUM; | 282 static const u2 UNSET_IDNUM; |
280 u2 method_idnum() const { return _method_idnum; } | 283 u2 method_idnum() const { return _method_idnum; } |