From d342623bb7156251acf1b31097695c7d986fd70c Mon Sep 17 00:00:00 2001
From: BogDan Vatra <bogdan@kdab.com>
Date: Thu, 5 May 2016 17:34:22 +0300
Subject: [PATCH] Don't wait too much to connect.

Some AVDs down't allow to connect to their console,
there is no point to wait 30s (which is the default connection timeout).

Change-Id: I3cb82b99f958787215f44b471abfc203d7633089
Reviewed-by: Vikas Pachdha <vikas.pachdha@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
---
 src/plugins/android/androidconfigurations.cpp | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp
index 35e80683244..06ace3cb361 100644
--- a/src/plugins/android/androidconfigurations.cpp
+++ b/src/plugins/android/androidconfigurations.cpp
@@ -588,8 +588,11 @@ QVector<AndroidDeviceInfo> AndroidConfig::connectedDevices(const QString &adbToo
         else
             dev.state = AndroidDeviceInfo::OkState;
 
-        if (dev.type == AndroidDeviceInfo::Emulator)
+        if (dev.type == AndroidDeviceInfo::Emulator) {
             dev.avdname = getAvdName(dev.serialNumber);
+            if (dev.avdname.isEmpty())
+                dev.avdname = serialNo;
+        }
 
         devices.push_back(dev);
     }
@@ -921,9 +924,11 @@ QString AndroidConfig::getAvdName(const QString &serialnumber)
 
     QTcpSocket tcpSocket;
     tcpSocket.connectToHost(QHostAddress(QHostAddress::LocalHost), port);
-    tcpSocket.waitForConnected();
+    if (!tcpSocket.waitForConnected(100)) // Don't wait more than 100ms for a local connection
+        return QString{};
+
     tcpSocket.write(avdName + "exit\n");
-    tcpSocket.waitForDisconnected();
+    tcpSocket.waitForDisconnected(500);
 
     QByteArray name;
     const QByteArrayList response = tcpSocket.readAll().split('\n');
-- 
GitLab