From 64ac719ff8c82cbd0da0a363140d4be79f9785e4 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 26 Nov 2021 18:40:56 +0100 Subject: [PATCH] Utils: Slim down private ProcessReaper interface Change-Id: Idd5669b9ed525148426b85bbbc9a2818877f2707 Reviewed-by: Jarek Kobus --- src/libs/utils/processreaper.cpp | 10 ++++++---- src/libs/utils/processreaper.h | 7 +------ 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/libs/utils/processreaper.cpp b/src/libs/utils/processreaper.cpp index cbdf29abe72..076981573d3 100644 --- a/src/libs/utils/processreaper.cpp +++ b/src/libs/utils/processreaper.cpp @@ -60,9 +60,11 @@ private: QProcess::ProcessState m_lastState = QProcess::NotRunning; }; +static QList g_reapers; + Reaper::Reaper(QProcess *p, int timeoutMs) : m_process(p) { - ProcessReaper::instance()->m_reapers.append(this); + g_reapers.append(this); m_iterationTimer.setInterval(timeoutMs); m_iterationTimer.setSingleShot(true); @@ -73,7 +75,7 @@ Reaper::Reaper(QProcess *p, int timeoutMs) : m_process(p) Reaper::~Reaper() { - ProcessReaper::instance()->m_reapers.removeOne(this); + g_reapers.removeOne(this); } int Reaper::timeoutMs() const @@ -144,12 +146,12 @@ void Reaper::nextIteration() ProcessReaper::~ProcessReaper() { - while (!m_reapers.isEmpty()) { + while (!Internal::g_reapers.isEmpty()) { int alreadyWaited = 0; QList toDelete; // push reapers along: - for (Internal::Reaper *pr : qAsConst(m_reapers)) { + for (Internal::Reaper *pr : qAsConst(Internal::g_reapers)) { const int timeoutMs = pr->timeoutMs(); if (alreadyWaited < timeoutMs) { const unsigned long toSleep = static_cast(timeoutMs - alreadyWaited); diff --git a/src/libs/utils/processreaper.h b/src/libs/utils/processreaper.h index f8485c12e39..64886312990 100644 --- a/src/libs/utils/processreaper.h +++ b/src/libs/utils/processreaper.h @@ -29,26 +29,21 @@ #include "singleton.h" -#include - QT_BEGIN_NAMESPACE class QProcess; QT_END_NAMESPACE namespace Utils { -namespace Internal { class Reaper; } - class QTCREATOR_UTILS_EXPORT ProcessReaper final : public SingletonWithOptionalDependencies { public: static void reap(QProcess *process, int timeoutMs = 500); + private: ProcessReaper() = default; ~ProcessReaper(); - QList m_reapers; - friend class Internal::Reaper; friend class SingletonWithOptionalDependencies; };