< prev index next >
src/share/vm/gc/g1/ptrQueue.cpp
Print this page
rev 12906 : [mq]: gc_interface
*** 70,89 ****
assert(_index <= _sz, "Invariant.");
}
void PtrQueue::locking_enqueue_completed_buffer(BufferNode* node) {
assert(_lock->owned_by_self(), "Required.");
-
- // We have to unlock _lock (which may be Shared_DirtyCardQ_lock) before
- // we acquire DirtyCardQ_CBL_mon inside enqueue_complete_buffer as they
- // have the same rank and we may get the "possible deadlock" message
- _lock->unlock();
-
qset()->enqueue_complete_buffer(node);
- // We must relock only because the caller will unlock, for the normal
- // case.
- _lock->lock_without_safepoint_check();
}
BufferNode* BufferNode::allocate(size_t byte_size) {
assert(byte_size > 0, "precondition");
--- 70,80 ----
< prev index next >