forked from qt-creator/qt-creator
Process: Change signature of setReaperTimeout()
Change the arg to std::chrono::milliseconds type. Change-Id: I7b79fc318e2fd06971148038a31fecd4c1805a79 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -258,7 +258,7 @@ void CallerHandle::start(const QString &program, const QStringList &arguments)
|
||||
p.lowPriority = m_setup->m_lowPriority;
|
||||
p.unixTerminalDisabled = m_setup->m_unixTerminalDisabled;
|
||||
p.useCtrlCStub = m_setup->m_useCtrlCStub;
|
||||
p.reaperTimeout = m_setup->m_reaperTimeout;
|
||||
p.reaperTimeout = m_setup->m_reaperTimeout.count();
|
||||
p.createConsoleOnWindows = m_setup->m_createConsoleOnWindows;
|
||||
sendPacket(p);
|
||||
}
|
||||
|
@@ -1396,12 +1396,12 @@ QVariantHash Process::extraData() const
|
||||
return d->m_setup.m_extraData;
|
||||
}
|
||||
|
||||
void Process::setReaperTimeout(int msecs)
|
||||
void Process::setReaperTimeout(milliseconds timeout)
|
||||
{
|
||||
d->m_setup.m_reaperTimeout = msecs;
|
||||
d->m_setup.m_reaperTimeout = timeout;
|
||||
}
|
||||
|
||||
int Process::reaperTimeout() const
|
||||
milliseconds Process::reaperTimeout() const
|
||||
{
|
||||
return d->m_setup.m_reaperTimeout;
|
||||
}
|
||||
|
@@ -127,8 +127,8 @@ public:
|
||||
void setExtraData(const QVariantHash &extraData);
|
||||
QVariantHash extraData() const;
|
||||
|
||||
void setReaperTimeout(int msecs);
|
||||
int reaperTimeout() const;
|
||||
void setReaperTimeout(std::chrono::milliseconds timeout);
|
||||
std::chrono::milliseconds reaperTimeout() const;
|
||||
|
||||
static void setRemoteProcessHooks(const DeviceProcessHooks &hooks);
|
||||
|
||||
|
@@ -85,7 +85,7 @@ public:
|
||||
QString m_standardInputFile;
|
||||
QString m_nativeArguments; // internal, dependent on specific code path
|
||||
|
||||
int m_reaperTimeout = 500; // in ms
|
||||
std::chrono::milliseconds m_reaperTimeout{500};
|
||||
bool m_abortOnMetaChars = true;
|
||||
bool m_runAsRoot = false;
|
||||
bool m_lowPriority = false;
|
||||
|
@@ -16,6 +16,8 @@
|
||||
|
||||
using namespace Utils;
|
||||
|
||||
using namespace std::chrono;
|
||||
|
||||
namespace Utils {
|
||||
namespace Internal {
|
||||
|
||||
@@ -66,7 +68,7 @@ static QString execWithArguments(QProcess *process)
|
||||
struct ReaperSetup
|
||||
{
|
||||
QProcess *m_process = nullptr;
|
||||
int m_timeoutMs;
|
||||
milliseconds m_timeoutMs;
|
||||
};
|
||||
|
||||
class Reaper : public QObject
|
||||
@@ -233,7 +235,7 @@ ProcessReaper::~ProcessReaper()
|
||||
m_thread.wait();
|
||||
}
|
||||
|
||||
void ProcessReaper::reap(QProcess *process, int timeoutMs)
|
||||
void ProcessReaper::reap(QProcess *process, milliseconds timeout)
|
||||
{
|
||||
if (!process)
|
||||
return;
|
||||
@@ -254,7 +256,7 @@ void ProcessReaper::reap(QProcess *process, int timeoutMs)
|
||||
ProcessReaperPrivate *priv = instance()->m_private;
|
||||
|
||||
process->moveToThread(priv->thread());
|
||||
ReaperSetup reaperSetup {process, timeoutMs};
|
||||
ReaperSetup reaperSetup{process, timeout};
|
||||
priv->scheduleReap(reaperSetup);
|
||||
}
|
||||
|
||||
|
@@ -20,7 +20,8 @@ class QTCREATOR_UTILS_EXPORT ProcessReaper final
|
||||
: public SingletonWithOptionalDependencies<ProcessReaper>
|
||||
{
|
||||
public:
|
||||
static void reap(QProcess *process, int timeoutMs = 500);
|
||||
static void reap(QProcess *process,
|
||||
std::chrono::milliseconds timeout = std::chrono::milliseconds(500));
|
||||
|
||||
private:
|
||||
ProcessReaper();
|
||||
|
@@ -42,18 +42,20 @@ static Q_LOGGING_CATEGORY(androidRunWorkerLog, "qtc.android.run.androidrunnerwor
|
||||
static const int GdbTempFileMaxCounter = 20;
|
||||
}
|
||||
|
||||
using namespace std;
|
||||
using namespace std::placeholders;
|
||||
using namespace ProjectExplorer;
|
||||
using namespace Utils;
|
||||
|
||||
using namespace std;
|
||||
using namespace std::chrono_literals;
|
||||
using namespace std::placeholders;
|
||||
|
||||
namespace Android {
|
||||
namespace Internal {
|
||||
|
||||
static const QString pidPollingScript = QStringLiteral("while [ -d /proc/%1 ]; do sleep 1; done");
|
||||
static const QRegularExpression userIdPattern("u(\\d+)_a");
|
||||
|
||||
static const int s_jdbTimeout = 5000;
|
||||
static const std::chrono::milliseconds s_jdbTimeout = 5s;
|
||||
|
||||
static int APP_START_TIMEOUT = 45000;
|
||||
static bool isTimedOut(const chrono::high_resolution_clock::time_point &start,
|
||||
@@ -785,7 +787,7 @@ void AndroidRunnerWorker::handleJdbSettled()
|
||||
m_jdbProcess->write(QString("%1\n").arg(command));
|
||||
}
|
||||
|
||||
if (!m_jdbProcess->waitForFinished(s_jdbTimeout)) {
|
||||
if (!m_jdbProcess->waitForFinished(s_jdbTimeout.count())) {
|
||||
m_jdbProcess.reset();
|
||||
} else if (m_jdbProcess->exitStatus() == QProcess::NormalExit && m_jdbProcess->exitCode() == 0) {
|
||||
qCDebug(androidRunWorkerLog) << "JDB settled";
|
||||
|
@@ -596,7 +596,7 @@ IosDeviceToolHandlerPrivate::IosDeviceToolHandlerPrivate(const IosDeviceType &de
|
||||
qCDebug(toolHandlerLog) << "IosToolHandler runEnv:" << env.toStringList();
|
||||
process->setEnvironment(env);
|
||||
process->setProcessMode(ProcessMode::Writer);
|
||||
process->setReaperTimeout(1500);
|
||||
process->setReaperTimeout(std::chrono::milliseconds(1500));
|
||||
|
||||
QObject::connect(process.get(), &Process::readyReadStandardOutput,
|
||||
q, [this] { subprocessHasData(); });
|
||||
|
@@ -274,7 +274,7 @@ void LauncherSocketHandler::removeProcess(quintptr token)
|
||||
|
||||
ProcessWithToken *process = it.value();
|
||||
m_processes.erase(it);
|
||||
ProcessReaper::reap(process, process->reaperTimeout());
|
||||
ProcessReaper::reap(process, std::chrono::milliseconds(process->reaperTimeout()));
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
|
Reference in New Issue
Block a user