192 size_t initial_capacity() const;
193 size_t capacity() const;
194 size_t used() const;
195 size_t committed() const;
196
197 // ---------- Workers handling
198 //
199 private:
200 uint _max_workers;
201 ShenandoahWorkGang* _workers;
202 ShenandoahWorkGang* _safepoint_workers;
203
204 public:
205 uint max_workers();
206 void assert_gc_workers(uint nworker) NOT_DEBUG_RETURN;
207
208 WorkGang* workers() const;
209 WorkGang* get_safepoint_workers();
210
211 void gc_threads_do(ThreadClosure* tcl) const;
212
213 // ---------- Heap regions handling machinery
214 //
215 private:
216 MemRegion _heap_region;
217 bool _heap_region_special;
218 size_t _num_regions;
219 ShenandoahHeapRegion** _regions;
220 ShenandoahRegionIterator _update_refs_iterator;
221
222 public:
223
224 inline HeapWord* base() const { return _heap_region.start(); }
225
226 inline size_t num_regions() const { return _num_regions; }
227 inline bool is_heap_region_special() { return _heap_region_special; }
228
229 inline ShenandoahHeapRegion* const heap_region_containing(const void* addr) const;
230 inline size_t heap_region_index_containing(const void* addr) const;
231
|
192 size_t initial_capacity() const;
193 size_t capacity() const;
194 size_t used() const;
195 size_t committed() const;
196
197 // ---------- Workers handling
198 //
199 private:
200 uint _max_workers;
201 ShenandoahWorkGang* _workers;
202 ShenandoahWorkGang* _safepoint_workers;
203
204 public:
205 uint max_workers();
206 void assert_gc_workers(uint nworker) NOT_DEBUG_RETURN;
207
208 WorkGang* workers() const;
209 WorkGang* get_safepoint_workers();
210
211 void gc_threads_do(ThreadClosure* tcl) const;
212 // Runs the given AbstractGangTask with the current active workers.
213 virtual void run_task(AbstractGangTask* task);
214
215 // ---------- Heap regions handling machinery
216 //
217 private:
218 MemRegion _heap_region;
219 bool _heap_region_special;
220 size_t _num_regions;
221 ShenandoahHeapRegion** _regions;
222 ShenandoahRegionIterator _update_refs_iterator;
223
224 public:
225
226 inline HeapWord* base() const { return _heap_region.start(); }
227
228 inline size_t num_regions() const { return _num_regions; }
229 inline bool is_heap_region_special() { return _heap_region_special; }
230
231 inline ShenandoahHeapRegion* const heap_region_containing(const void* addr) const;
232 inline size_t heap_region_index_containing(const void* addr) const;
233
|