< prev index next >
src/share/vm/gc/g1/dirtyCardQueue.cpp
Print this page
rev 10742 : Make fields used in lock-free algorithms volatile
*** 158,168 ****
bool result = true;
void** buf = BufferNode::make_buffer_from_node(node);
size_t limit = DirtyCardQueue::byte_index_to_index(buffer_size());
size_t i = DirtyCardQueue::byte_index_to_index(node->index());
for ( ; i < limit; ++i) {
! jbyte* card_ptr = static_cast<jbyte*>(buf[i]);
assert(card_ptr != NULL, "invariant");
if (!cl->do_card_ptr(card_ptr, worker_i)) {
result = false; // Incomplete processing.
break;
}
--- 158,168 ----
bool result = true;
void** buf = BufferNode::make_buffer_from_node(node);
size_t limit = DirtyCardQueue::byte_index_to_index(buffer_size());
size_t i = DirtyCardQueue::byte_index_to_index(node->index());
for ( ; i < limit; ++i) {
! volatile jbyte* card_ptr = static_cast<volatile jbyte*>(buf[i]);
assert(card_ptr != NULL, "invariant");
if (!cl->do_card_ptr(card_ptr, worker_i)) {
result = false; // Incomplete processing.
break;
}
< prev index next >