Allocate interrupted exception before re-acquiring lock
Allocating the monitor exception after acquiring the lock can cause a deadlock in the following scenario: Reference queue daemon interrupted from wait() on ReferenceQueue.class. Tries to allocate exception and starts a GC that blocks on WaitForGcToComplete. Some other thread is already doing a GC, and tries to enqueue the cleared refereneces. This deadlocks trying to lock Reference.class in ReferenceQueue.add. Bug: 27508829 Change-Id: Icbc18b6b8d1e906c3f7413810d6cefdda06eb921
Loading
Please sign in to comment