< prev index next >
src/share/vm/gc/g1/dirtyCardQueue.cpp
Print this page
rev 10597 : [mq]: yield_inc1
*** 173,191 ****
node->set_index(new_index);
}
return result;
}
bool DirtyCardQueueSet::mut_process_buffer(BufferNode* node) {
guarantee(_free_ids != NULL, "must be");
uint worker_i = _free_ids->claim_par_id(); // temporarily claim an id
bool result = apply_closure_to_buffer(_mut_process_closure, node, true, worker_i);
_free_ids->release_par_id(worker_i); // release the id
if (result) {
! assert(node->index() == buffer_size(), "apply said fully consumed");
Atomic::inc(&_processed_buffers_mut);
}
return result;
}
--- 173,198 ----
node->set_index(new_index);
}
return result;
}
+ inline void assert_fully_consumed(BufferNode* node, size_t buffer_size) {
+ assert(node->index() == buffer_size,
+ "Buffer was not fully consumed as claimed: index: " SIZE_FORMAT
+ ", size: " SIZE_FORMAT,
+ node->index(), buffer_size);
+ }
+
bool DirtyCardQueueSet::mut_process_buffer(BufferNode* node) {
guarantee(_free_ids != NULL, "must be");
uint worker_i = _free_ids->claim_par_id(); // temporarily claim an id
bool result = apply_closure_to_buffer(_mut_process_closure, node, true, worker_i);
_free_ids->release_par_id(worker_i); // release the id
if (result) {
! assert_fully_consumed(node, buffer_size());
Atomic::inc(&_processed_buffers_mut);
}
return result;
}
*** 221,231 ****
BufferNode* nd = get_completed_buffer(stop_at);
if (nd == NULL) {
return false;
} else {
if (apply_closure_to_buffer(cl, nd, true, worker_i)) {
! assert(nd->index() == buffer_size(), "apply said fully consumed");
// Done with fully processed buffer.
deallocate_buffer(nd);
Atomic::inc(&_processed_buffers_rs_thread);
} else {
// Return partially processed buffer to the queue.
--- 228,238 ----
BufferNode* nd = get_completed_buffer(stop_at);
if (nd == NULL) {
return false;
} else {
if (apply_closure_to_buffer(cl, nd, true, worker_i)) {
! assert_fully_consumed(nd, buffer_size());
// Done with fully processed buffer.
deallocate_buffer(nd);
Atomic::inc(&_processed_buffers_rs_thread);
} else {
// Return partially processed buffer to the queue.
< prev index next >