< prev index next >
src/hotspot/share/gc/shared/ptrQueue.cpp
Print this page
rev 52629 : [mq]: remove_fn
*** 72,87 ****
assert(index() <= capacity(), "invariant");
_index -= _element_size;
_buf[index()] = ptr;
}
- void PtrQueue::locking_enqueue_completed_buffer(BufferNode* node) {
- assert(_lock->owned_by_self(), "Required.");
- qset()->enqueue_complete_buffer(node);
- }
-
-
BufferNode* BufferNode::allocate(size_t size) {
size_t byte_size = size * sizeof(void*);
void* data = NEW_C_HEAP_ARRAY(char, buffer_offset() + byte_size, mtGC);
return new (data) BufferNode;
}
--- 72,81 ----
*** 220,230 ****
assert(_lock->owned_by_self(), "Required.");
BufferNode* node = BufferNode::make_node_from_buffer(_buf, index());
_buf = NULL; // clear shared _buf field
! locking_enqueue_completed_buffer(node); // enqueue completed buffer
assert(_buf == NULL, "multiple enqueuers appear to be racing");
} else {
BufferNode* node = BufferNode::make_node_from_buffer(_buf, index());
if (qset()->process_or_enqueue_complete_buffer(node)) {
// Recycle the buffer. No allocation.
--- 214,224 ----
assert(_lock->owned_by_self(), "Required.");
BufferNode* node = BufferNode::make_node_from_buffer(_buf, index());
_buf = NULL; // clear shared _buf field
! qset()->enqueue_complete_buffer(node);
assert(_buf == NULL, "multiple enqueuers appear to be racing");
} else {
BufferNode* node = BufferNode::make_node_from_buffer(_buf, index());
if (qset()->process_or_enqueue_complete_buffer(node)) {
// Recycle the buffer. No allocation.
< prev index next >