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