diff options
author | Andreas Kling <awesomekling@gmail.com> | 2020-01-15 22:45:02 +0100 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2020-01-15 23:14:20 +0100 |
commit | d9385d7d6252dbd0f5882a43d4a6b328fce0daf0 (patch) | |
tree | 10aea50c07ae8a95f8409762520e8e51b11cd2ed /Applications/SystemMonitor/MemoryStatsWidget.cpp | |
parent | 806f19d64749cb21e89c874777090e73a5e3de9e (diff) | |
download | serenity-d9385d7d6252dbd0f5882a43d4a6b328fce0daf0.zip |
SystemMonitor: Unbreak the memory stats graph
It was never updating because we'd just seek the start of /proc/memstat
over and over, which didn't generate new contents. Instead, open the
file on every iteration.
Diffstat (limited to 'Applications/SystemMonitor/MemoryStatsWidget.cpp')
-rw-r--r-- | Applications/SystemMonitor/MemoryStatsWidget.cpp | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/Applications/SystemMonitor/MemoryStatsWidget.cpp b/Applications/SystemMonitor/MemoryStatsWidget.cpp index 5895b9a1e9..2ac13673ff 100644 --- a/Applications/SystemMonitor/MemoryStatsWidget.cpp +++ b/Applications/SystemMonitor/MemoryStatsWidget.cpp @@ -1,6 +1,7 @@ #include "MemoryStatsWidget.h" #include "GraphWidget.h" #include <AK/JsonObject.h> +#include <LibCore/CFile.h> #include <LibDraw/StylePainter.h> #include <LibGUI/GBoxLayout.h> #include <LibGUI/GLabel.h> @@ -18,13 +19,10 @@ MemoryStatsWidget* MemoryStatsWidget::the() MemoryStatsWidget::MemoryStatsWidget(GraphWidget& graph, GWidget* parent) : GWidget(parent) , m_graph(graph) - , m_proc_memstat(CFile::construct("/proc/memstat")) { ASSERT(!s_the); s_the = this; - if (!m_proc_memstat->open(CIODevice::OpenMode::ReadOnly)) - ASSERT_NOT_REACHED(); set_size_policy(SizePolicy::Fill, SizePolicy::Fixed); set_preferred_size(0, 72); @@ -69,9 +67,11 @@ static inline size_t bytes_to_kb(size_t bytes) void MemoryStatsWidget::refresh() { - m_proc_memstat->seek(0); + auto proc_memstat = CFile::construct("/proc/memstat"); + if (!proc_memstat->open(CIODevice::OpenMode::ReadOnly)) + ASSERT_NOT_REACHED(); - auto file_contents = m_proc_memstat->read_all(); + auto file_contents = proc_memstat->read_all(); auto json = JsonValue::from_string(file_contents).as_object(); unsigned kmalloc_eternal_allocated = json.get("kmalloc_eternal_allocated").to_u32(); @@ -97,8 +97,3 @@ void MemoryStatsWidget::refresh() m_graph.set_max(page_count_to_kb(user_pages_available)); m_graph.add_value(page_count_to_kb(user_physical_allocated)); } - -void MemoryStatsWidget::timer_event(CTimerEvent&) -{ - refresh(); -} |