From 94e08b9adcc04d1d768bb5ba760546f810be97f6 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Sat, 25 Jun 2016 22:27:05 +0300 Subject: [PATCH] Utils: Fix runBlocking * result is initialized to StartFailed, so after executing, we should always set the result, unless previously set to Hang. If the process really fails to start, we return earlier. * Setting m_maxHangTimerCount to INT_MAX is bad, since it is later multiplied by 1000 (the original value is in seconds), but still remains an int, so we get -1000... Change-Id: Ie990105894fe223a93ece29df4574592a122f94b Reviewed-by: Tobias Hunger --- src/libs/utils/synchronousprocess.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libs/utils/synchronousprocess.cpp b/src/libs/utils/synchronousprocess.cpp index 32aea54818c..9f6210869db 100644 --- a/src/libs/utils/synchronousprocess.cpp +++ b/src/libs/utils/synchronousprocess.cpp @@ -297,12 +297,12 @@ void SynchronousProcess::setTimeoutS(int timeoutS) if (timeoutS > 0) d->m_maxHangTimerCount = qMax(2, timeoutS); else - d->m_maxHangTimerCount = INT_MAX; + d->m_maxHangTimerCount = INT_MAX / 1000; } int SynchronousProcess::timeoutS() const { - return d->m_maxHangTimerCount == INT_MAX ? -1 : d->m_maxHangTimerCount; + return d->m_maxHangTimerCount == (INT_MAX / 1000) ? -1 : d->m_maxHangTimerCount; } void SynchronousProcess::setCodec(QTextCodec *c) @@ -476,7 +476,7 @@ SynchronousProcessResponse SynchronousProcess::runBlocking(const QString &binary QTC_ASSERT(d->m_process.state() == QProcess::NotRunning, return d->m_result); d->m_result.exitCode = d->m_process.exitCode(); - if (d->m_result.result != SynchronousProcessResponse::StartFailed) { + if (d->m_result.result == SynchronousProcessResponse::StartFailed) { if (d->m_process.exitStatus() != QProcess::NormalExit) d->m_result.result = SynchronousProcessResponse::TerminatedAbnormally; else