102 virtual size_t unsafe_max_tlab_alloc(Thread* thr) const; 103 104 virtual void collect(GCCause::Cause cause); 105 virtual void do_full_collection(bool clear_all_soft_refs); 106 107 // Heap walking support 108 virtual void object_iterate(ObjectClosure* cl); 109 110 // Object pinning support: every object is implicitly pinned 111 virtual bool supports_object_pinning() const { return true; } 112 virtual oop pin_object(JavaThread* thread, oop obj) { return obj; } 113 virtual void unpin_object(JavaThread* thread, oop obj) { } 114 115 // No support for block parsing. 116 HeapWord* block_start(const void* addr) const { return NULL; } 117 bool block_is_obj(const HeapWord* addr) const { return false; } 118 119 // No GC threads 120 virtual void gc_threads_do(ThreadClosure* tc) const {} 121 122 // No nmethod handling 123 virtual void register_nmethod(nmethod* nm) {} 124 virtual void unregister_nmethod(nmethod* nm) {} 125 virtual void flush_nmethod(nmethod* nm) {} 126 virtual void verify_nmethod(nmethod* nm) {} 127 128 // No heap verification 129 virtual void prepare_for_verify() {} 130 virtual void verify(VerifyOption option) {} 131 132 MemRegion reserved_region() const { return _reserved; } 133 bool is_in_reserved(const void* addr) const { return _reserved.contains(addr); } 134 135 virtual void print_on(outputStream* st) const; 136 virtual void print_tracing_info() const; 137 virtual bool print_location(outputStream* st, void* addr) const; 138 139 private: 140 void print_heap_info(size_t used) const; 141 void print_metaspace_info() const; | 102 virtual size_t unsafe_max_tlab_alloc(Thread* thr) const; 103 104 virtual void collect(GCCause::Cause cause); 105 virtual void do_full_collection(bool clear_all_soft_refs); 106 107 // Heap walking support 108 virtual void object_iterate(ObjectClosure* cl); 109 110 // Object pinning support: every object is implicitly pinned 111 virtual bool supports_object_pinning() const { return true; } 112 virtual oop pin_object(JavaThread* thread, oop obj) { return obj; } 113 virtual void unpin_object(JavaThread* thread, oop obj) { } 114 115 // No support for block parsing. 116 HeapWord* block_start(const void* addr) const { return NULL; } 117 bool block_is_obj(const HeapWord* addr) const { return false; } 118 119 // No GC threads 120 virtual void gc_threads_do(ThreadClosure* tc) const {} 121 122 // Runs the given AbstractGangTask with the current active workers 123 // No workGang for EpsilonHeap, work serially with thread 0 124 virtual void run_task(AbstractGangTask* task) { task->work(0); } 125 126 // No nmethod handling 127 virtual void register_nmethod(nmethod* nm) {} 128 virtual void unregister_nmethod(nmethod* nm) {} 129 virtual void flush_nmethod(nmethod* nm) {} 130 virtual void verify_nmethod(nmethod* nm) {} 131 132 // No heap verification 133 virtual void prepare_for_verify() {} 134 virtual void verify(VerifyOption option) {} 135 136 MemRegion reserved_region() const { return _reserved; } 137 bool is_in_reserved(const void* addr) const { return _reserved.contains(addr); } 138 139 virtual void print_on(outputStream* st) const; 140 virtual void print_tracing_info() const; 141 virtual bool print_location(outputStream* st, void* addr) const; 142 143 private: 144 void print_heap_info(size_t used) const; 145 void print_metaspace_info() const; |