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