summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorIan Rogers <irogers@google.com>2014-06-18 23:24:40 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-06-18 22:48:23 +0000
commit0c29909cbde112bc9c04da4ce81421e1a0b39f36 (patch)
treea925100d9eed7aaeee7f3d0fa16a8917f6370c12 /runtime
parent241fd1192dfc0f7322660343179f9fc0591ed9ff (diff)
parent7de77dd4f2d3cbb0615ee001589eb99ae82c3dcc (diff)
downloadart-0c29909cbde112bc9c04da4ce81421e1a0b39f36.zip
art-0c29909cbde112bc9c04da4ce81421e1a0b39f36.tar.gz
art-0c29909cbde112bc9c04da4ce81421e1a0b39f36.tar.bz2
Merge "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."
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,