src/hotspot/share/gc/g1/g1CollectedHeap.cpp
changeset 59252 623722a6aeb9
parent 59249 29b0d0b61615
child 59293 5af9fa90cd7b
equal deleted inserted replaced
59251:4cbfa5077d68 59252:623722a6aeb9
  3375   void par_apply(RedirtyLoggedCardTableEntryClosure* cl, uint worker_id) {
  3375   void par_apply(RedirtyLoggedCardTableEntryClosure* cl, uint worker_id) {
  3376     size_t buffer_size = _qset->buffer_size();
  3376     size_t buffer_size = _qset->buffer_size();
  3377     BufferNode* next = Atomic::load(&_nodes);
  3377     BufferNode* next = Atomic::load(&_nodes);
  3378     while (next != NULL) {
  3378     while (next != NULL) {
  3379       BufferNode* node = next;
  3379       BufferNode* node = next;
  3380       next = Atomic::cmpxchg(node->next(), &_nodes, node);
  3380       next = Atomic::cmpxchg(&_nodes, node, node->next());
  3381       if (next == node) {
  3381       if (next == node) {
  3382         cl->apply_to_buffer(node, buffer_size, worker_id);
  3382         cl->apply_to_buffer(node, buffer_size, worker_id);
  3383         next = node->next();
  3383         next = node->next();
  3384       }
  3384       }
  3385     }
  3385     }