diff options
| author | 2013-07-02 17:40:28 -0700 | |
|---|---|---|
| committer | 2013-07-02 17:41:59 -0700 | |
| commit | 73cca6ff8a8134ddbf56c8aef80bb3cc46b83a7d (patch) | |
| tree | e86f0f8db05388cb9daa17df58969fa1d0c5f7fc /src | |
| parent | 0b4e3ef67508a0b8c121b6b26ab5ea0a1d8e7141 (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.cc | 4 | ||||
| -rw-r--r-- | src/locks.h | 2 |
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, |