< prev index next >

src/hotspot/share/code/nmethod.cpp

   set_osr_link(NULL);
   NMethodSweeper::report_state_change(this);
 
   // The release is only needed for compile-time ordering, as accesses
   // into the nmethod after the store is not safe, due to the sweeper
-  // being allowed to free it then, in the case of concurrent nmethod
-  // unloading. Therefore, there is no need for acquire on the loader side.
+  // being allowed to free it when the store is observed, during
+  // concurrent nmethod unloading. Therefore, there is no need for
+  // acquire on the loader side.
   OrderAccess::release_store(&_state, (signed char)unloaded);
 }
 
 void nmethod::invalidate_osr_method() {
   assert(_entry_bci != InvocationEntryBci, "wrong kind of nmethod");

@@ -1844,11 +1845,11 DepTable* table = new DepTable(); // Iterate over live nmethods and check dependencies of all nmethods that are not // marked for deoptimization. A particular dependency is only checked once. - NMethodIterator iter(true /* only_alive */, true /* only_not_unloading */); + NMethodIterator iter(NMethodIterator::only_alive_and_not_unloading); while(iter.next()) { nmethod* nm = iter.method(); // Only notify for live nmethods if (!nm->is_marked_for_deoptimization()) { for (Dependencies::DepStream deps(nm); deps.next(); ) {
< prev index next >