63 void update_region_status();
64
65 // Remove region from collection set
66 void remove_region(ShenandoahHeapRegion* r);
67
68 // MT version
69 ShenandoahHeapRegion* claim_next();
70
71 // Single-thread version
72 ShenandoahHeapRegion* next();
73
74 size_t count() const { return _region_count; }
75 bool is_empty() const { return _region_count == 0; }
76
77 void clear_current_index() {
78 _current_index = 0;
79 }
80
81 inline bool is_in(ShenandoahHeapRegion* r) const;
82 inline bool is_in(size_t region_number) const;
83 inline bool is_in(oop obj) const;
84
85 void print_on(outputStream* out) const;
86
87 size_t used() const { return _used; }
88 size_t live_data() const { return _live_data; }
89 size_t garbage() const { return _garbage; }
90 void clear();
91
92 private:
93 char* map_address() const {
94 return _cset_map;
95 }
96 char* biased_map_address() const {
97 return _biased_cset_map;
98 }
99 };
100
101 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHCOLLECTIONSET_HPP
|
63 void update_region_status();
64
65 // Remove region from collection set
66 void remove_region(ShenandoahHeapRegion* r);
67
68 // MT version
69 ShenandoahHeapRegion* claim_next();
70
71 // Single-thread version
72 ShenandoahHeapRegion* next();
73
74 size_t count() const { return _region_count; }
75 bool is_empty() const { return _region_count == 0; }
76
77 void clear_current_index() {
78 _current_index = 0;
79 }
80
81 inline bool is_in(ShenandoahHeapRegion* r) const;
82 inline bool is_in(size_t region_number) const;
83 inline bool is_in(HeapWord* p) const;
84
85 void print_on(outputStream* out) const;
86
87 size_t used() const { return _used; }
88 size_t live_data() const { return _live_data; }
89 size_t garbage() const { return _garbage; }
90 void clear();
91
92 private:
93 char* map_address() const {
94 return _cset_map;
95 }
96 char* biased_map_address() const {
97 return _biased_cset_map;
98 }
99 };
100
101 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHCOLLECTIONSET_HPP
|