src/hotspot/share/code/codeCache.hpp
changeset 52405 c0c6cdea32f1
parent 52385 5c679ec60888
child 52453 6e99148dbf33
--- a/src/hotspot/share/code/codeCache.hpp	Mon Nov 05 10:31:47 2018 +0100
+++ b/src/hotspot/share/code/codeCache.hpp	Mon Nov 05 08:01:39 2018 +0100
@@ -72,8 +72,9 @@
 // existing ones, make sure to adapt the dtrace scripts (jhelper.d) for
 // Solaris and BSD.
 
+class ExceptionCache;
+class KlassDepChange;
 class OopClosure;
-class KlassDepChange;
 
 class CodeCache : AllStatic {
   friend class VMStructs;
@@ -94,6 +95,8 @@
   static nmethod* _scavenge_root_nmethods;              // linked via nm->scavenge_root_link()
   static uint8_t _unloading_cycle;                      // Global state for recognizing old nmethods that need to be unloaded
 
+  static ExceptionCache* volatile _exception_cache_purge_list;
+
   static void mark_scavenge_root_nmethods() PRODUCT_RETURN;
   static void verify_perm_nmethods(CodeBlobClosure* f_or_null) PRODUCT_RETURN;
 
@@ -192,6 +195,8 @@
   static uint16_t unloading_cycle() { return _unloading_cycle; }
   static void increment_unloading_cycle();
   static void asserted_non_scavengable_nmethods_do(CodeBlobClosure* f = NULL) PRODUCT_RETURN;
+  static void release_exception_cache(ExceptionCache* entry);
+  static void purge_exception_caches();
 
   // Apply f to every live code blob in scavengable nmethods. Prune nmethods
   // from the list of scavengable nmethods if f->fix_relocations() and a nmethod