81 void safepoint_synchronize_end();
82
83 // If "young_gen_as_roots" is false, younger generations are
84 // not scanned as roots; in this case, the caller must be arranging to
85 // scan the younger generations itself. (For example, a generation might
86 // explicitly mark reachable objects in younger generations, to avoid
87 // excess storage retention.)
88 void cms_process_roots(StrongRootsScope* scope,
89 bool young_gen_as_roots,
90 ScanningOption so,
91 bool only_strong_roots,
92 OopsInGenClosure* root_closure,
93 CLDClosure* cld_closure);
94
95 private:
96 WorkGang* _workers;
97
98 virtual void gc_prologue(bool full);
99 virtual void gc_epilogue(bool full);
100
101 // Accessor for memory state verification support
102 NOT_PRODUCT(
103 virtual size_t skip_header_HeapWords() { return CMSCollector::skip_header_HeapWords(); }
104 )
105
106 // Returns success or failure.
107 bool create_cms_collector();
108
109 // In support of ExplicitGCInvokesConcurrent functionality
110 bool should_do_concurrent_full_gc(GCCause::Cause cause);
111
112 void collect_mostly_concurrent(GCCause::Cause cause);
113 };
114
115 #endif // SHARE_VM_GC_CMS_CMSHEAP_HPP
|
81 void safepoint_synchronize_end();
82
83 // If "young_gen_as_roots" is false, younger generations are
84 // not scanned as roots; in this case, the caller must be arranging to
85 // scan the younger generations itself. (For example, a generation might
86 // explicitly mark reachable objects in younger generations, to avoid
87 // excess storage retention.)
88 void cms_process_roots(StrongRootsScope* scope,
89 bool young_gen_as_roots,
90 ScanningOption so,
91 bool only_strong_roots,
92 OopsInGenClosure* root_closure,
93 CLDClosure* cld_closure);
94
95 private:
96 WorkGang* _workers;
97
98 virtual void gc_prologue(bool full);
99 virtual void gc_epilogue(bool full);
100
101 virtual GCServicabilitySupport* create_servicability_support();
102
103 // Accessor for memory state verification support
104 NOT_PRODUCT(
105 virtual size_t skip_header_HeapWords() { return CMSCollector::skip_header_HeapWords(); }
106 )
107
108 // Returns success or failure.
109 bool create_cms_collector();
110
111 // In support of ExplicitGCInvokesConcurrent functionality
112 bool should_do_concurrent_full_gc(GCCause::Cause cause);
113
114 void collect_mostly_concurrent(GCCause::Cause cause);
115 };
116
117 #endif // SHARE_VM_GC_CMS_CMSHEAP_HPP
|