< prev index next >

src/hotspot/share/gc/g1/sparsePRT.cpp

Print this page

        

*** 290,315 **** if (sprt->expanded()) return; sprt->set_expanded(true); SparsePRT* hd = _head_expanded_list; while (true) { sprt->_next_expanded = hd; ! SparsePRT* res = ! (SparsePRT*) ! Atomic::cmpxchg_ptr(sprt, &_head_expanded_list, hd); if (res == hd) return; else hd = res; } } SparsePRT* SparsePRT::get_from_expanded_list() { SparsePRT* hd = _head_expanded_list; while (hd != NULL) { SparsePRT* next = hd->next_expanded(); ! SparsePRT* res = ! (SparsePRT*) ! Atomic::cmpxchg_ptr(next, &_head_expanded_list, hd); if (res == hd) { hd->set_next_expanded(NULL); return hd; } else { hd = res; --- 290,311 ---- if (sprt->expanded()) return; sprt->set_expanded(true); SparsePRT* hd = _head_expanded_list; while (true) { sprt->_next_expanded = hd; ! SparsePRT* res = Atomic::cmpxchg(sprt, &_head_expanded_list, hd); if (res == hd) return; else hd = res; } } SparsePRT* SparsePRT::get_from_expanded_list() { SparsePRT* hd = _head_expanded_list; while (hd != NULL) { SparsePRT* next = hd->next_expanded(); ! SparsePRT* res = Atomic::cmpxchg(next, &_head_expanded_list, hd); if (res == hd) { hd->set_next_expanded(NULL); return hd; } else { hd = res;
< prev index next >