Paste P642

Masterwork From Distant Lands
ActivePublic

Authored by davidedmundson on Oct 23 2020, 11:23 PM.
diff --git a/processcore/processes_linux_p.cpp b/processcore/processes_linux_p.cpp
index 7976591..12fdc7d 100644
--- a/processcore/processes_linux_p.cpp
+++ b/processcore/processes_linux_p.cpp
@@ -31,6 +31,7 @@
#include <QByteArray>
#include <QTextStream>
#include <QThreadPool>
+#include <QDebug>
//for sysconf
#include <unistd.h>
@@ -550,13 +551,16 @@ bool ProcessesLocal::Private::getIOStatistics(const QString &dir, Process *proce
bool ProcessesLocal::updateProcessInfo( long pid, Process *process)
{
bool success = true;
- QString dir = QLatin1String("/proc/") + QString::number(pid) + QLatin1Char('/');
+ const QString dir = QLatin1String("/proc/") + QString::number(pid) + QLatin1Char('/');
auto runnable = new ReadProcSmapsRunnable{dir};
- connect(runnable, &ReadProcSmapsRunnable::finished, this, [this, pid, runnable]() {
- Q_EMIT processUpdated(pid, { { Process::VmPSS, runnable->pss() } });
- runnable->deleteLater();
- }, Qt::DirectConnection);
+
+ connect(runnable, &ReadProcSmapsRunnable::finished, this, [this, pid, runnable](qulonglong pss) {
+ Q_EMIT processUpdated(pid, { { Process::VmPSS, pss } });
+ });
+
+ connect(runnable, &ReadProcSmapsRunnable::finished, runnable, &QObject::deleteLater);
+
QThreadPool::globalInstance()->start(runnable);
if(!d->readProcStat(dir, process)) success = false;
diff --git a/processcore/read_procsmaps_runnable.cpp b/processcore/read_procsmaps_runnable.cpp
index dbc4c1e..ecace51 100644
--- a/processcore/read_procsmaps_runnable.cpp
+++ b/processcore/read_procsmaps_runnable.cpp
@@ -24,20 +24,15 @@ void ReadProcSmapsRunnable::run()
return;
}
- m_pss = 0LL;
+ qulonglong pss = 0LL;
auto buffer = QByteArray{1024, '\0'};
while (file.readLine(buffer.data(), buffer.size()) > 0) {
if (buffer.startsWith("Pss:")) {
- m_pss += std::stoll(buffer.mid(sizeof("Pss:")).toStdString());
+ pss += std::stoll(buffer.mid(sizeof("Pss:")).toStdString());
}
}
file.close();
- Q_EMIT finished();
-}
-
-qlonglong ReadProcSmapsRunnable::pss() const
-{
- return m_pss;
+ Q_EMIT finished(pss);
}
diff --git a/processcore/read_procsmaps_runnable.h b/processcore/read_procsmaps_runnable.h
index 044c9be..91afd1b 100644
--- a/processcore/read_procsmaps_runnable.h
+++ b/processcore/read_procsmaps_runnable.h
@@ -19,13 +19,10 @@ public:
void run() override;
- qlonglong pss() const;
-
- Q_SIGNAL void finished();
+ Q_SIGNAL void finished(qulonglong pss);
private:
QString m_dir;
- qlonglong m_pss = 0;
};
} // namespace KSysGuard
davidedmundson edited the content of this paste. (Show Details)Oct 23 2020, 11:23 PM
davidedmundson changed the title of this paste from untitled to Masterwork From Distant Lands.