< 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 >