aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/perforce/perforcechecker.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2010-03-01 10:06:05 +0100
committerFriedemann Kleint <Friedemann.Kleint@nokia.com>2010-03-01 10:06:32 +0100
commita1fed931c45c81566fd3d806abcb39b7c7bffabd (patch)
tree7d163fbe9545b3fb2a3cc95e822e9e5fbaafa802 /src/plugins/perforce/perforcechecker.cpp
parent1f940786fbd1e99441b91e071c242858e7439da2 (diff)
VCS: Fix time-out handling for synchronous processes.
Introduce static utilities to Utils::SynchronousProcess for synchronous processes that mimicks the handling of Utils::SynchronousProcess (apply timeout after no more data are available on stdout/stderr as opposed to waitForFinished()). Task-number: QTCREATORBUG-777
Diffstat (limited to 'src/plugins/perforce/perforcechecker.cpp')
-rw-r--r--src/plugins/perforce/perforcechecker.cpp16
1 files changed, 3 insertions, 13 deletions
diff --git a/src/plugins/perforce/perforcechecker.cpp b/src/plugins/perforce/perforcechecker.cpp
index 9a80170faf4..f42407bc739 100644
--- a/src/plugins/perforce/perforcechecker.cpp
+++ b/src/plugins/perforce/perforcechecker.cpp
@@ -30,6 +30,7 @@
#include "perforcechecker.h"
#include <utils/qtcassert.h>
+#include <utils/synchronousprocess.h>
#include <QtCore/QRegExp>
#include <QtCore/QTimer>
@@ -101,23 +102,12 @@ void PerforceChecker::start(const QString &binary,
}
}
-bool PerforceChecker::ensureProcessStopped(QProcess &p)
-{
- if (p.state() != QProcess::Running)
- return true;
- p.terminate();
- if (p.waitForFinished(300))
- return true;
- p.kill();
- return p.waitForFinished(300);
-}
-
void PerforceChecker::slotTimeOut()
{
if (!isRunning())
return;
m_timedOut = true;
- ensureProcessStopped(m_process);
+ Utils::SynchronousProcess::stopProcess(m_process);
emitFailed(tr("\"%1\" timed out after %2ms.").arg(m_binary).arg(m_timeOutMS));
}
@@ -135,7 +125,7 @@ void PerforceChecker::slotError(QProcess::ProcessError error)
case QProcess::ReadError:
case QProcess::WriteError:
case QProcess::UnknownError:
- ensureProcessStopped(m_process);
+ Utils::SynchronousProcess::stopProcess(m_process);
break;
}
}