< 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 >