< prev index next >

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

Print this page
rev 47400 : [mq]: cmpxchg_ptr

*** 291,302 **** 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; } } --- 291,301 ---- 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; } }
*** 304,315 **** 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; --- 303,313 ---- 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 >