From 2fba934cde14d72e3ed58c389dc2e24d7297475b Mon Sep 17 00:00:00 2001 From: aristocratos Date: Wed, 27 Dec 2023 00:54:28 +0100 Subject: [PATCH 1/2] Fixed leftover code in GPU init logging false errors --- src/linux/btop_collect.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/linux/btop_collect.cpp b/src/linux/btop_collect.cpp index c39e964..677c3fe 100644 --- a/src/linux/btop_collect.cpp +++ b/src/linux/btop_collect.cpp @@ -949,12 +949,6 @@ namespace Gpu { if (initialized) return false; //? Dynamic loading & linking - nvml_dl_handle = dlopen("libnvidia-ml.so", RTLD_LAZY); - if (!nvml_dl_handle) { - Logger::info(std::string("Failed to load libnvidia-ml.so, NVIDIA GPUs will not be detected: ") + dlerror()); - return false; - } - //? Try possible library names for libnvidia-ml.so const array libNvAlts = { "libnvidia-ml.so", From 285fb215d12a5e0c686b29e1039027cbb2b246da Mon Sep 17 00:00:00 2001 From: aristocratos Date: Thu, 28 Dec 2023 13:10:18 +0100 Subject: [PATCH 2/2] Proc::draw() -> Use std::erase_if() instead of for loops --- src/btop_draw.cpp | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/src/btop_draw.cpp b/src/btop_draw.cpp index 97195f1..0ceaa2f 100644 --- a/src/btop_draw.cpp +++ b/src/btop_draw.cpp @@ -1799,7 +1799,7 @@ namespace Proc { p_counters[p.pid] = 0; } else if (p.cpu_p < 0.1 and ++p_counters[p.pid] >= 10) { - p_graphs.erase(p.pid); + if (p_graphs.contains(p.pid)) p_graphs.erase(p.pid); p_counters.erase(p.pid); } else @@ -1927,22 +1927,18 @@ namespace Proc { //? Clear out left over graphs from dead processes at a regular interval if (not data_same and ++counter >= 100) { counter = 0; - for (auto element = p_graphs.begin(); element != p_graphs.end();) { - if (rng::find(plist, element->first, &proc_info::pid) == plist.end()) { - element = p_graphs.erase(element); - p_counters.erase(element->first); - } - else - ++element; - } - for (auto element = p_wide_cmd.begin(); element != p_wide_cmd.end();) { - if (rng::find(plist, element->first, &proc_info::pid) == plist.end()) { - element = p_wide_cmd.erase(element); - } - else - ++element; - } + std::erase_if(p_graphs, [&](const auto& pair) { + return rng::find(plist, pair.first, &proc_info::pid) == plist.end(); + }); + + std::erase_if(p_counters, [&](const auto& pair) { + return rng::find(plist, pair.first, &proc_info::pid) == plist.end(); + }); + + std::erase_if(p_wide_cmd, [&](const auto& pair) { + return rng::find(plist, pair.first, &proc_info::pid) == plist.end(); + }); } if (selected == 0 and selected_pid != 0) {