< prev index next >

src/share/vm/code/codeCache.hpp

Print this page
rev 10619 : [backport] Move ParallelCodeIterator to ShenandoahCodeRoots

*** 28,38 **** #include "code/codeBlob.hpp" #include "memory/allocation.hpp" #include "memory/heap.hpp" #include "oops/instanceKlass.hpp" #include "oops/oopsHierarchy.hpp" - #include "runtime/safepoint.hpp" // The CodeCache implements the code cache for various pieces of generated // code, e.g., compiled java methods, runtime stubs, transition frames, etc. // The entries in the CodeCache are all CodeBlob's. --- 28,37 ----
*** 41,63 **** // - Like the offset table in oldspace the zone has at table for // locating a method given a addess of an instruction. class OopClosure; class DepChange; ! ! class ParallelCodeCacheIterator VALUE_OBJ_CLASS_SPEC { ! friend class CodeCache; ! private: ! volatile int _claimed_idx; ! volatile bool _finished; ! public: ! ParallelCodeCacheIterator(); ! void parallel_blobs_do(CodeBlobClosure* f); ! }; class CodeCache : AllStatic { friend class VMStructs; private: // CodeHeap is malloc()'ed at startup and never deleted during shutdown, // so that the generated assembly code is always there when it's needed. // This may cause memory leak, but is necessary, for now. See 4423824, // 4422213 or 4436291 for details. --- 40,54 ---- // - Like the offset table in oldspace the zone has at table for // locating a method given a addess of an instruction. class OopClosure; class DepChange; ! class ShenandoahParallelCodeCacheIterator; class CodeCache : AllStatic { friend class VMStructs; + friend class ShenandoahParallelCodeCacheIterator; private: // CodeHeap is malloc()'ed at startup and never deleted during shutdown, // so that the generated assembly code is always there when it's needed. // This may cause memory leak, but is necessary, for now. See 4423824, // 4422213 or 4436291 for details.
*** 139,155 **** // GC support static void gc_epilogue(); static void gc_prologue(); static void verify_oops(); - - // Parallel GC support - static ParallelCodeCacheIterator parallel_iterator() { - assert(SafepointSynchronize::is_at_safepoint(), "Must be at safepoint"); - return ParallelCodeCacheIterator(); - } - // If "unloading_occurred" is true, then unloads (i.e., breaks root links // to) any unmarked codeBlobs in the cache. Sets "marked_for_unloading" // to "true" iff some code got unloaded. static void do_unloading(BoolObjectClosure* is_alive, bool unloading_occurred); static void asserted_non_scavengable_nmethods_do(CodeBlobClosure* f = NULL) PRODUCT_RETURN; --- 130,139 ----
< prev index next >