diff --git a/src/hotspot/share/code/codeCache.hpp b/src/hotspot/share/code/codeCache.hpp index fcf6cb4..c7790c6 100644 --- a/src/hotspot/share/code/codeCache.hpp +++ b/src/hotspot/share/code/codeCache.hpp @@ -71,8 +71,9 @@ // existing ones, make sure to adapt the dtrace scripts (jhelper.d) for // Solaris and BSD. -class OopClosure; +class ExceptionCache; class KlassDepChange; +class OopClosure; class CodeCache : AllStatic { friend class VMStructs; @@ -93,6 +94,8 @@ class CodeCache : AllStatic { static bool _needs_cache_clean; // True if inline caches of the nmethods needs to be flushed static nmethod* _scavenge_root_nmethods; // linked via nm->scavenge_root_link() + 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; @@ -174,6 +177,8 @@ class CodeCache : AllStatic { // "unloading_occurred" controls whether metadata should be cleaned because of class unloading. static void do_unloading(BoolObjectClosure* is_alive, bool unloading_occurred); 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