aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ddms/libs/ddmlib/src/com/android/ddmlib/DeviceMonitor.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/ddms/libs/ddmlib/src/com/android/ddmlib/DeviceMonitor.java b/ddms/libs/ddmlib/src/com/android/ddmlib/DeviceMonitor.java
index 21869af..a975cd4 100644
--- a/ddms/libs/ddmlib/src/com/android/ddmlib/DeviceMonitor.java
+++ b/ddms/libs/ddmlib/src/com/android/ddmlib/DeviceMonitor.java
@@ -219,6 +219,20 @@ final class DeviceMonitor {
// we can safely ignore that one.
}
mMainAdbConnection = null;
+
+ // remove all devices from list
+ // because we are going to call mServer.deviceDisconnected which will acquire this
+ // lock we lock it first, so that the AndroidDebugBridge lock is always locked
+ // first.
+ synchronized (AndroidDebugBridge.getLock()) {
+ synchronized (mDevices) {
+ for (int n = mDevices.size() - 1; n >= 0; n--) {
+ Device device = mDevices.get(0);
+ removeDevice(device);
+ mServer.deviceDisconnected(device);
+ }
+ }
+ }
}
}
}