< prev index next >
src/share/vm/code/nmethod.hpp
Print this page
rev 13243 : 8180932: Parallelize safepoint cleanup
Summary: Provide infrastructure to do safepoint cleanup tasks using parallel worker threads
Reviewed-by: dholmes, rehn, dcubed, thartmann
@@ -134,11 +134,11 @@
// not_entrant method removal. Each mark_sweep pass will update
// this mark to current sweep invocation count if it is seen on the
// stack. An not_entrant method can be removed when there are no
// more activations, i.e., when the _stack_traversal_mark is less than
// current sweep traversal index.
- long _stack_traversal_mark;
+ volatile jlong _stack_traversal_mark;
// The _hotness_counter indicates the hotness of a method. The higher
// the value the hotter the method. The hotness counter of a nmethod is
// set to [(ReservedCodeCacheSize / (1024 * 1024)) * 2] each time the method
// is active while stack scanning (mark_active_nmethods()). The hotness
@@ -394,12 +394,12 @@
void set_scavenge_root_link(nmethod *n) { _scavenge_root_link = n; }
public:
// Sweeper support
- long stack_traversal_mark() { return _stack_traversal_mark; }
- void set_stack_traversal_mark(long l) { _stack_traversal_mark = l; }
+ jlong stack_traversal_mark() { return OrderAccess::load_acquire(&_stack_traversal_mark); }
+ void set_stack_traversal_mark(jlong l) { OrderAccess::release_store(&_stack_traversal_mark, l); }
// implicit exceptions support
address continuation_for_implicit_exception(address pc);
// On-stack replacement support
< prev index next >