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 | 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 |