summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author Mathieu Chartier <mathieuc@google.com> 2013-07-02 17:40:28 -0700
committer Mathieu Chartier <mathieuc@google.com> 2013-07-02 17:41:59 -0700
commit73cca6ff8a8134ddbf56c8aef80bb3cc46b83a7d (patch)
treee86f0f8db05388cb9daa17df58969fa1d0c5f7fc /src
parent0b4e3ef67508a0b8c121b6b26ab5ea0a1d8e7141 (diff)
Fix DDMS lock ordering error.
Renamed kJdwpSerialLock to guard both the jdwp socket and serial. Moved the lock priority higher than the alloc space lock priority. This is needed since walking the dlmalloc heap requires acquiring the alloc space lock. Change-Id: Idce47ea8c400643829edc5aaebb57f8b686b2853
Diffstat (limited to 'src')
-rw-r--r--src/jdwp/jdwp_main.cc4
-rw-r--r--src/locks.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/jdwp/jdwp_main.cc b/src/jdwp/jdwp_main.cc
index df7498851d..3b6dd810cc 100644
--- a/src/jdwp/jdwp_main.cc
+++ b/src/jdwp/jdwp_main.cc
@@ -36,7 +36,7 @@ static void* StartJdwpThread(void* arg);
* JdwpNetStateBase class implementation
*/
JdwpNetStateBase::JdwpNetStateBase(JdwpState* state)
- : state_(state), socket_lock_("JdwpNetStateBase lock") {
+ : state_(state), socket_lock_("JdwpNetStateBase lock", kJdwpSerialSocketLock) {
clientSock = -1;
wake_pipe_[0] = -1;
wake_pipe_[1] = -1;
@@ -211,7 +211,7 @@ JdwpState::JdwpState(const JdwpOptions* options)
attach_lock_("JDWP attach lock", kJdwpAttachLock),
attach_cond_("JDWP attach condition variable", attach_lock_),
last_activity_time_ms_(0),
- serial_lock_("JDWP serial lock", kJdwpSerialLock),
+ serial_lock_("JDWP serial lock", kJdwpSerialSocketLock),
request_serial_(0x10000000),
event_serial_(0x20000000),
event_list_lock_("JDWP event list lock", kJdwpEventListLock),
diff --git a/src/locks.h b/src/locks.h
index 202fa025a3..91437e1830 100644
--- a/src/locks.h
+++ b/src/locks.h
@@ -36,9 +36,9 @@ enum LockLevel {
kUnexpectedSignalLock,
kThreadSuspendCountLock,
kAbortLock,
+ kJdwpSerialSocketLock,
kAllocSpaceLock,
kDefaultMutexLevel,
- kJdwpSerialLock,
kMarkSweepLargeObjectLock,
kPinTableLock,
kLoadLibraryLock,