From bafaff61c9b7b870cacbf61f6fb1a1f26e5d27b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?kleines=20Filmr=C3=B6llchen?= Date: Wed, 6 Apr 2022 14:55:20 +0200 Subject: SystemMonitor: Fallback to invalid model index if there's no main thread In the process model we check the thread with tid=pid to figure out the main thread of a process. This is used to construct the process view tree with non-main threads listed as children of the process row. However, there are sometimes circumstances where there is no main thread, even though the process should have been removed from the internal list by then. As a safe fallback, let's default to an invalid model index if we can't figure out what the main thread of a process is. --- Userland/Applications/SystemMonitor/ProcessModel.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Userland/Applications/SystemMonitor/ProcessModel.h') diff --git a/Userland/Applications/SystemMonitor/ProcessModel.h b/Userland/Applications/SystemMonitor/ProcessModel.h index 93f7618f46..d8daecbeef 100644 --- a/Userland/Applications/SystemMonitor/ProcessModel.h +++ b/Userland/Applications/SystemMonitor/ProcessModel.h @@ -210,9 +210,9 @@ private: return this->pid == other.pid; } - NonnullRefPtr main_thread() const + Optional> main_thread() const { - return *threads.first_matching([this](auto const thread) { return thread->current_state.tid == pid; }).value(); + return threads.first_matching([this](auto const thread) { return thread->current_state.tid == pid; }); } // Return anything but the main thread; therefore, valid indices are anything up to threads.size()-1 exclusive. -- cgit v1.2.3