diff src/share/vm/code/nmethod.cpp @ 23428:be740540f60c

8134493: Cleaning inline caches of unloaded nmethods should be done in sweeper Summary: Clean ICs of unloaded nmethods in sweeper to avoid impact on safepoint duration. Reviewed-by: kvn, mdoerr
author thartmann
date Thu, 08 Oct 2015 09:38:24 +0200
parents c1950f51ed60
children 5cece4584b8e
line wrap: on
line diff
--- a/src/share/vm/code/nmethod.cpp	Thu Oct 08 09:37:51 2015 +0200
+++ b/src/share/vm/code/nmethod.cpp	Thu Oct 08 09:38:24 2015 +0200
@@ -1191,7 +1191,7 @@
         if( cb != NULL && cb->is_nmethod() ) {
           nmethod* nm = (nmethod*)cb;
           // Clean inline caches pointing to zombie, non-entrant and unloaded methods
-          if (!nm->is_in_use() || (nm->method()->code() != nm)) ic->set_to_clean();
+          if (!nm->is_in_use() || (nm->method()->code() != nm)) ic->set_to_clean(is_alive());
         }
         break;
       }
@@ -1291,7 +1291,7 @@
 // Tell if a non-entrant method can be converted to a zombie (i.e.,
 // there are no activations on the stack, not in use by the VM,
 // and not in use by the ServiceThread)
-bool nmethod::can_not_entrant_be_converted() {
+bool nmethod::can_convert_to_zombie() {
   assert(is_not_entrant(), "must be a non-entrant method");
 
   // Since the nmethod sweeper only does partial sweep the sweeper's traversal