Use QProcess::kill() rather than QProcess::terminate() for adb.exe

terminate (on Windows) requires a Windows Event Loop to process it
so use kill() on all platforms instead.

Change-Id: Ic38d6813c3071fde67806b10d782e5ab3b0f1a18
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This commit is contained in:
Ray Donnelly
2012-12-10 23:43:21 +00:00
committed by Daniel Teske
parent 4e540ce786
commit decefcbd8f
4 changed files with 11 additions and 11 deletions

View File

@@ -412,7 +412,7 @@ QVector<AndroidDeviceInfo> AndroidConfigurations::connectedDevices(int apiLevel)
QProcess adbProc;
adbProc.start(adbToolPath().toString(), QStringList() << QLatin1String("devices"));
if (!adbProc.waitForFinished(-1)) {
adbProc.terminate();
adbProc.kill();
return devices;
}
QList<QByteArray> adbDevs = adbProc.readAll().trimmed().split('\n');
@@ -565,7 +565,7 @@ QString AndroidConfigurations::startAVD(int *apiLevel, const QString &name) cons
proc.start(adbToolPath().toString(), QStringList() << QLatin1String("-e") << QLatin1String("wait-for-device"));
while (!proc.waitForFinished(500)) {
if (avdProcess->waitForFinished(0)) {
proc.terminate();
proc.kill();
proc.waitForFinished(-1);
return QString();
}
@@ -575,7 +575,7 @@ QString AndroidConfigurations::startAVD(int *apiLevel, const QString &name) cons
// workaround for stupid adb bug
proc.start(adbToolPath().toString(), QStringList() << QLatin1String("devices"));
if (!proc.waitForFinished(-1)) {
proc.terminate();
proc.kill();
return QString();
}
@@ -597,7 +597,7 @@ int AndroidConfigurations::getSDKVersion(const QString &device) const
<< QLatin1String("shell") << QLatin1String("getprop")
<< QLatin1String("ro.build.version.sdk"));
if (!adbProc.waitForFinished(-1)) {
adbProc.terminate();
adbProc.kill();
return -1;
}
return adbProc.readAll().trimmed().toInt();