equal
deleted
inserted
replaced
227 // linked together using their _next field. |
227 // linked together using their _next field. |
228 static void bulk_free(PerRegionTable* prt, PerRegionTable* last) { |
228 static void bulk_free(PerRegionTable* prt, PerRegionTable* last) { |
229 while (true) { |
229 while (true) { |
230 PerRegionTable* fl = _free_list; |
230 PerRegionTable* fl = _free_list; |
231 last->set_next(fl); |
231 last->set_next(fl); |
232 PerRegionTable* res = Atomic::cmpxchg(prt, &_free_list, fl); |
232 PerRegionTable* res = Atomic::cmpxchg(&_free_list, fl, prt); |
233 if (res == fl) { |
233 if (res == fl) { |
234 return; |
234 return; |
235 } |
235 } |
236 } |
236 } |
237 ShouldNotReachHere(); |
237 ShouldNotReachHere(); |