< prev index next >

src/hotspot/share/gc/epsilon/epsilonHeap.hpp

Print this page
rev 53608 : Epsilon + Mark-Compact

*** 88,107 **** return _space->is_in(p); } virtual bool is_scavengable(oop obj) { // No GC is going to happen, therefore no objects ever move. ! return false; } virtual bool is_maximal_no_gc() const { // No GC is going to happen. Return "we are at max", when we are about to fail. return used() == capacity(); } // Allocation HeapWord* allocate_work(size_t size); virtual HeapWord* mem_allocate(size_t size, bool* gc_overhead_limit_was_exceeded); virtual HeapWord* allocate_new_tlab(size_t min_size, size_t requested_size, size_t* actual_size); --- 88,109 ---- return _space->is_in(p); } virtual bool is_scavengable(oop obj) { // No GC is going to happen, therefore no objects ever move. ! // Or are they... (evil laugh). ! return EpsilonWhyNotGCAnyway; } virtual bool is_maximal_no_gc() const { // No GC is going to happen. Return "we are at max", when we are about to fail. return used() == capacity(); } // Allocation HeapWord* allocate_work(size_t size); + HeapWord* allocate_or_collect_work(size_t size); virtual HeapWord* mem_allocate(size_t size, bool* gc_overhead_limit_was_exceeded); virtual HeapWord* allocate_new_tlab(size_t min_size, size_t requested_size, size_t* actual_size);
*** 120,130 **** virtual void object_iterate(ObjectClosure* cl) { safe_object_iterate(cl); } // Object pinning support: every object is implicitly pinned ! virtual bool supports_object_pinning() const { return true; } virtual oop pin_object(JavaThread* thread, oop obj) { return obj; } virtual void unpin_object(JavaThread* thread, oop obj) { } // No support for block parsing. virtual HeapWord* block_start(const void* addr) const { return NULL; } --- 122,133 ---- virtual void object_iterate(ObjectClosure* cl) { safe_object_iterate(cl); } // Object pinning support: every object is implicitly pinned ! // Or is it... (evil laugh) ! virtual bool supports_object_pinning() const { return !EpsilonWhyNotGCAnyway; } virtual oop pin_object(JavaThread* thread, oop obj) { return obj; } virtual void unpin_object(JavaThread* thread, oop obj) { } // No support for block parsing. virtual HeapWord* block_start(const void* addr) const { return NULL; }
*** 145,156 **** --- 148,168 ---- } virtual void print_on(outputStream* st) const; virtual void print_tracing_info() const; + void entry_collect(GCCause::Cause cause); + private: void print_heap_info(size_t used) const; void print_metaspace_info() const; + void vmentry_collect(GCCause::Cause cause); + + void do_roots(OopClosure* cl, bool everything); + void process_roots(OopClosure* cl) { do_roots(cl, false); } + void process_all_roots(OopClosure* cl) { do_roots(cl, true); } + void walk_heap(ObjectClosure* cl, bool only_marked); + }; #endif // SHARE_GC_EPSILON_EPSILONHEAP_HPP
< prev index next >