< prev index next >
src/hotspot/share/gc/shared/collectedHeap.hpp
Print this page
rev 60522 : webrev 13
*** 27,36 ****
--- 27,37 ----
#include "gc/shared/gcCause.hpp"
#include "gc/shared/gcWhen.hpp"
#include "gc/shared/verifyOption.hpp"
#include "memory/allocation.hpp"
+ #include "memory/heapInspection.hpp"
#include "memory/universe.hpp"
#include "runtime/handles.hpp"
#include "runtime/perfData.hpp"
#include "runtime/safepoint.hpp"
#include "services/memoryUsage.hpp"
*** 42,51 ****
--- 43,53 ----
// A "CollectedHeap" is an implementation of a java heap for HotSpot. This
// is an abstract class: there may be many different kinds of heaps. This
// class defines the functions that a heap must implement, and contains
// infrastructure common to all heaps.
+ class AbstractGangTask;
class AdaptiveSizePolicy;
class BarrierSet;
class GCHeapSummary;
class GCTimer;
class GCTracer;
*** 83,92 ****
--- 85,99 ----
void log_heap_after(CollectedHeap* heap) {
log_heap(heap, false);
}
};
+ class ParallelObjectIterator : public CHeapObj<mtGC> {
+ public:
+ virtual void object_iterate(ObjectClosure* cl, uint worker_id) = 0;
+ };
+
//
// CollectedHeap
// GenCollectedHeap
// SerialHeap
// G1CollectedHeap
*** 405,414 ****
--- 412,425 ----
virtual GrowableArray<MemoryPool*> memory_pools() = 0;
// Iterate over all objects, calling "cl.do_object" on each.
virtual void object_iterate(ObjectClosure* cl) = 0;
+ virtual ParallelObjectIterator* parallel_object_iterator(uint thread_num) {
+ return NULL;
+ }
+
// Keep alive an object that was loaded with AS_NO_KEEPALIVE.
virtual void keep_alive(oop obj) {}
// Perform any cleanup actions necessary before allowing a verification.
virtual void prepare_for_verify() = 0;
*** 454,463 ****
--- 465,477 ----
virtual bool print_location(outputStream* st, void* addr) const = 0;
// Iterator for all GC threads (other than VM thread)
virtual void gc_threads_do(ThreadClosure* tc) const = 0;
+ // Run given task. Possibly in parallel if the GC supports it.
+ virtual void run_task(AbstractGangTask* task) = 0;
+
// Print any relevant tracing info that flags imply.
// Default implementation does nothing.
virtual void print_tracing_info() const = 0;
void print_heap_before_gc();
< prev index next >