summaryrefslogtreecommitdiff
path: root/test/ProfileTestMultiDex/Second.java
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2016-07-13 09:53:35 -0700
committerMathieu Chartier <mathieuc@google.com>2016-08-23 18:09:40 -0700
commit1386f8619bb9cd338e51a9b6b5121bc8443bda76 (patch)
treef1fa8f807790ee0d49d32af66819a458d0c4702d /test/ProfileTestMultiDex/Second.java
parent7ae0862d40f2d326bd3acdcd4f9e1369e628856a (diff)
Use try lock to fix class resolution race
There was some possible deadlocks related to EnsureResolved caused by acquiring an object lock. Scenario: Thread 1 acquires lock on obj1 Thread 1 begins to resolve / initialize class1 Thread 1 blocks since it sees that class1 is already being resolved and gets preempted before it can acquire the object lock on class1 Thread 2 finishes resolving and initializing class1 and locks class1 Thread 2 blocks attempting to lock obj1 Thread 1 blocks attempting to lock class1 Deadlock Fixed the deadlock by changing EnsureResolved to use a try lock for the unresolved case. Added a test. Test: Device boot, test-art-host, monitor_test Bug: 27417671 (cherry picked from commit a704eda0078989a73cac111ed309aca50d2e289b) Change-Id: I1150b19bdc1a5cc87ae95eda4f2b6b4bca215a60
Diffstat (limited to 'test/ProfileTestMultiDex/Second.java')
0 files changed, 0 insertions, 0 deletions