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