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

Reply via email to