< prev index next >

src/hotspot/share/gc/shared/referenceProcessor.cpp

Print this page

        

*** 1029,1039 **** // discovered_addr. oop current_head = refs_list.head(); // The last ref must have its discovered field pointing to itself. oop next_discovered = (current_head != NULL) ? current_head : obj; ! oop retest = HeapAccess<AS_NO_KEEPALIVE>::oop_atomic_cmpxchg(next_discovered, discovered_addr, oop(NULL)); if (retest == NULL) { // This thread just won the right to enqueue the object. // We have separate lists for enqueueing, so no synchronization // is necessary. --- 1029,1039 ---- // discovered_addr. oop current_head = refs_list.head(); // The last ref must have its discovered field pointing to itself. oop next_discovered = (current_head != NULL) ? current_head : obj; ! oop retest = HeapAccess<AS_NO_KEEPALIVE>::oop_atomic_cmpxchg(discovered_addr, oop(NULL), next_discovered); if (retest == NULL) { // This thread just won the right to enqueue the object. // We have separate lists for enqueueing, so no synchronization // is necessary.
< prev index next >