summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorRaghu Gandham <raghu.gandham@imgtec.com>2014-06-13 15:16:31 -0700
committerRaghu Gandham <raghu.gandham@imgtec.com>2014-06-13 15:26:39 -0700
commit7de77dd4f2d3cbb0615ee001589eb99ae82c3dcc (patch)
treeb699dc76d48c853897d8cabaa825be2ab4ec4f5d /runtime
parent8cd927c8f6911cfb6118b8c54550959c09eb84f8 (diff)
downloadart-7de77dd4f2d3cbb0615ee001589eb99ae82c3dcc.zip
art-7de77dd4f2d3cbb0615ee001589eb99ae82c3dcc.tar.gz
art-7de77dd4f2d3cbb0615ee001589eb99ae82c3dcc.tar.bz2
Assign a lower Locklevel for Mutexes used in QuasiAtomic operations.
This fixes the CompilerDriverTest on MIPS. The test was failing when Transaction::Abort() acquired intern_table_lock_ and log_lock_ and subsequently performed QuasiAtomic operations. Change-Id: I9fcda51221f1f298bcb5dd0e10019bd2034ab8ae
Diffstat (limited to 'runtime')
-rw-r--r--runtime/atomic.cc2
-rw-r--r--runtime/base/mutex.h1
2 files changed, 2 insertions, 1 deletions
diff --git a/runtime/atomic.cc b/runtime/atomic.cc
index 63f2cf8..e766a8d 100644
--- a/runtime/atomic.cc
+++ b/runtime/atomic.cc
@@ -31,7 +31,7 @@ void QuasiAtomic::Startup() {
if (kNeedSwapMutexes) {
gSwapMutexes = new std::vector<Mutex*>;
for (size_t i = 0; i < kSwapMutexCount; ++i) {
- gSwapMutexes->push_back(new Mutex("QuasiAtomic stripe"));
+ gSwapMutexes->push_back(new Mutex("QuasiAtomic stripe", kSwapMutexesLock));
}
}
}
diff --git a/runtime/base/mutex.h b/runtime/base/mutex.h
index 1ba6180..81e62ab 100644
--- a/runtime/base/mutex.h
+++ b/runtime/base/mutex.h
@@ -55,6 +55,7 @@ class Thread;
enum LockLevel {
kLoggingLock = 0,
kMemMapsLock,
+ kSwapMutexesLock,
kUnexpectedSignalLock,
kThreadSuspendCountLock,
kAbortLock,