< prev index next >
src/hotspot/share/gc/g1/g1CollectedHeap.cpp
Print this page
*** 3375,3385 ****
void par_apply(RedirtyLoggedCardTableEntryClosure* cl, uint worker_id) {
size_t buffer_size = _qset->buffer_size();
BufferNode* next = Atomic::load(&_nodes);
while (next != NULL) {
BufferNode* node = next;
! next = Atomic::cmpxchg(node->next(), &_nodes, node);
if (next == node) {
cl->apply_to_buffer(node, buffer_size, worker_id);
next = node->next();
}
}
--- 3375,3385 ----
void par_apply(RedirtyLoggedCardTableEntryClosure* cl, uint worker_id) {
size_t buffer_size = _qset->buffer_size();
BufferNode* next = Atomic::load(&_nodes);
while (next != NULL) {
BufferNode* node = next;
! next = Atomic::cmpxchg(&_nodes, node, node->next());
if (next == node) {
cl->apply_to_buffer(node, buffer_size, worker_id);
next = node->next();
}
}
< prev index next >