equal
deleted
inserted
replaced
164 return magazine; |
164 return magazine; |
165 } |
165 } |
166 |
166 |
167 ZMarkStackMagazine* ZMarkStackAllocator::alloc_magazine() { |
167 ZMarkStackMagazine* ZMarkStackAllocator::alloc_magazine() { |
168 // Try allocating from the free list first |
168 // Try allocating from the free list first |
169 ZMarkStackMagazine* const magazine = _freelist.pop_atomic(); |
169 ZMarkStackMagazine* const magazine = _freelist.pop(); |
170 if (magazine != NULL) { |
170 if (magazine != NULL) { |
171 return magazine; |
171 return magazine; |
172 } |
172 } |
173 |
173 |
174 // Allocate new magazine |
174 // Allocate new magazine |
179 |
179 |
180 return create_magazine_from_space(addr, ZMarkStackMagazineSize); |
180 return create_magazine_from_space(addr, ZMarkStackMagazineSize); |
181 } |
181 } |
182 |
182 |
183 void ZMarkStackAllocator::free_magazine(ZMarkStackMagazine* magazine) { |
183 void ZMarkStackAllocator::free_magazine(ZMarkStackMagazine* magazine) { |
184 _freelist.push_atomic(magazine); |
184 _freelist.push(magazine); |
185 } |
185 } |