equal
deleted
inserted
replaced
70 |
70 |
71 inline bool ZLiveMap::is_segment_live(BitMap::idx_t segment) const { |
71 inline bool ZLiveMap::is_segment_live(BitMap::idx_t segment) const { |
72 return segment_live_bits().par_at(segment); |
72 return segment_live_bits().par_at(segment); |
73 } |
73 } |
74 |
74 |
75 inline bool ZLiveMap::set_segment_live_atomic(BitMap::idx_t segment) { |
75 inline bool ZLiveMap::set_segment_live(BitMap::idx_t segment) { |
76 return segment_live_bits().par_set_bit(segment, memory_order_release); |
76 return segment_live_bits().par_set_bit(segment, memory_order_release); |
77 } |
77 } |
78 |
78 |
79 inline bool ZLiveMap::claim_segment(BitMap::idx_t segment) { |
79 inline bool ZLiveMap::claim_segment(BitMap::idx_t segment) { |
80 return segment_claim_bits().par_set_bit(segment, memory_order_acq_rel); |
80 return segment_claim_bits().par_set_bit(segment, memory_order_acq_rel); |
101 return is_marked() && // Page is marked |
101 return is_marked() && // Page is marked |
102 is_segment_live(segment) && // Segment is marked |
102 is_segment_live(segment) && // Segment is marked |
103 _bitmap.at(index); // Object is marked |
103 _bitmap.at(index); // Object is marked |
104 } |
104 } |
105 |
105 |
106 inline bool ZLiveMap::set_atomic(size_t index, bool finalizable, bool& inc_live) { |
106 inline bool ZLiveMap::set(size_t index, bool finalizable, bool& inc_live) { |
107 if (!is_marked()) { |
107 if (!is_marked()) { |
108 // First object to be marked during this |
108 // First object to be marked during this |
109 // cycle, reset marking information. |
109 // cycle, reset marking information. |
110 reset(index); |
110 reset(index); |
111 } |
111 } |
118 } |
118 } |
119 |
119 |
120 return _bitmap.par_set_bit_pair(index, finalizable, inc_live); |
120 return _bitmap.par_set_bit_pair(index, finalizable, inc_live); |
121 } |
121 } |
122 |
122 |
123 inline void ZLiveMap::inc_live_atomic(uint32_t objects, size_t bytes) { |
123 inline void ZLiveMap::inc_live(uint32_t objects, size_t bytes) { |
124 Atomic::add(objects, &_live_objects); |
124 Atomic::add(objects, &_live_objects); |
125 Atomic::add(bytes, &_live_bytes); |
125 Atomic::add(bytes, &_live_bytes); |
126 } |
126 } |
127 |
127 |
128 inline BitMap::idx_t ZLiveMap::segment_start(BitMap::idx_t segment) const { |
128 inline BitMap::idx_t ZLiveMap::segment_start(BitMap::idx_t segment) const { |