diff options
author | Ian Rogers <irogers@google.com> | 2014-03-05 23:40:59 -0800 |
---|---|---|
committer | Ian Rogers <irogers@google.com> | 2014-03-05 23:40:59 -0800 |
commit | 85ae517ebb093d6c3bcc86f87b5a70c720cefd04 (patch) | |
tree | 49567501ebde325abf2592459fbd4d5430033bf6 | |
parent | 653661ff54fd2bd8b66389d8f2cec655723d3547 (diff) | |
download | art-85ae517ebb093d6c3bcc86f87b5a70c720cefd04.zip art-85ae517ebb093d6c3bcc86f87b5a70c720cefd04.tar.gz art-85ae517ebb093d6c3bcc86f87b5a70c720cefd04.tar.bz2 |
Lock ranking fix for monitor IDs.
Free-ing objects holds a lock and so the monitor ID lock needs to be
of a lower rank.
Change-Id: I594ac04c1f76c5d6fd2e752886040565001d4eaf
-rw-r--r-- | runtime/locks.h | 1 | ||||
-rw-r--r-- | runtime/monitor_pool.cc | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/runtime/locks.h b/runtime/locks.h index 2f9810d..4343ab4 100644 --- a/runtime/locks.h +++ b/runtime/locks.h @@ -46,6 +46,7 @@ enum LockLevel { kMarkSweepMarkStackLock, kTransactionLogLock, kInternTableLock, + kMonitorPoolLock, kDefaultMutexLevel, kMarkSweepLargeObjectLock, kPinTableLock, diff --git a/runtime/monitor_pool.cc b/runtime/monitor_pool.cc index eadd7a6..19e569d 100644 --- a/runtime/monitor_pool.cc +++ b/runtime/monitor_pool.cc @@ -22,7 +22,8 @@ namespace art { -MonitorPool::MonitorPool() : allocated_ids_lock_("allocated monitor ids lock") { +MonitorPool::MonitorPool() : allocated_ids_lock_("allocated monitor ids lock", + LockLevel::kMonitorPoolLock) { } Monitor* MonitorPool::LookupMonitorFromTable(MonitorId mon_id) { |