Hi Dan,
On 2016-06-28 03:34, Daniel D. Daugherty wrote:
[...]
src/share/vm/gc/shared/vmGCOperations.cpp
L103: Heap_lock->unlock();
You did not add a conditional "Heap_lock->notify_all()" before
the Heap_lock->unlock() like you've done in other places.
Since you deleted a release_and_notify_pending_list_lock()
call, I would think you need the:
if (Universe::has_reference_pending_list()) {
Heap_lock->notify_all();
}
This path is only taken if the GC was skipped and never ran. In this
case, we know we didn't discover and enqueued any new references on the
pending list, hence no need to notify any waiting thread (the Reference
Handler thread in this case).
cheers,
Per