From 7970b594d57c12829d9c22f396100395755b8a1d Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 2 Dec 2019 17:36:10 +0100 Subject: [PATCH] SystemMonitor: Update the process memory map once every second --- Applications/SystemMonitor/ProcessMemoryMapWidget.cpp | 8 ++++++++ Applications/SystemMonitor/ProcessMemoryMapWidget.h | 3 +++ 2 files changed, 11 insertions(+) diff --git a/Applications/SystemMonitor/ProcessMemoryMapWidget.cpp b/Applications/SystemMonitor/ProcessMemoryMapWidget.cpp index a30f7f9d98..8b592a5999 100644 --- a/Applications/SystemMonitor/ProcessMemoryMapWidget.cpp +++ b/Applications/SystemMonitor/ProcessMemoryMapWidget.cpp @@ -1,4 +1,5 @@ #include "ProcessMemoryMapWidget.h" +#include #include #include #include @@ -30,6 +31,7 @@ ProcessMemoryMapWidget::ProcessMemoryMapWidget(GWidget* parent) }); pid_vm_fields.empend("name", "Name", TextAlignment::CenterLeft); m_table_view->set_model(GJsonArrayModel::create({}, move(pid_vm_fields))); + m_timer = CTimer::construct(1000, [this] { refresh(); }, this); } ProcessMemoryMapWidget::~ProcessMemoryMapWidget() @@ -43,3 +45,9 @@ void ProcessMemoryMapWidget::set_pid(pid_t pid) m_pid = pid; static_cast(m_table_view->model())->set_json_path(String::format("/proc/%d/vm", pid)); } + +void ProcessMemoryMapWidget::refresh() +{ + if (m_pid != -1) + m_table_view->model()->update(); +} diff --git a/Applications/SystemMonitor/ProcessMemoryMapWidget.h b/Applications/SystemMonitor/ProcessMemoryMapWidget.h index db09ddc454..8d4081635b 100644 --- a/Applications/SystemMonitor/ProcessMemoryMapWidget.h +++ b/Applications/SystemMonitor/ProcessMemoryMapWidget.h @@ -2,6 +2,7 @@ #include +class CTimer; class GTableView; class ProcessMemoryMapWidget final : public GWidget { @@ -10,9 +11,11 @@ public: virtual ~ProcessMemoryMapWidget() override; void set_pid(pid_t); + void refresh(); private: explicit ProcessMemoryMapWidget(GWidget* parent); RefPtr m_table_view; pid_t m_pid { -1 }; + RefPtr m_timer; };