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 |