diff --git a/Applications/ProcessManager/ProcessModel.cpp b/Applications/ProcessManager/ProcessModel.cpp index 9ed93c3e86..cbd19e64d2 100644 --- a/Applications/ProcessManager/ProcessModel.cpp +++ b/Applications/ProcessManager/ProcessModel.cpp @@ -84,12 +84,14 @@ GVariant ProcessModel::data(const GModelIndex& index, Role role) const case Column::State: return process.current_state.state; case Column::User: return process.current_state.user; case Column::Priority: - if (process.current_state.priority == "Low") + if (process.current_state.priority == "Idle") return 0; - if (process.current_state.priority == "Normal") + if (process.current_state.priority == "Low") return 1; - if (process.current_state.priority == "High") + if (process.current_state.priority == "Normal") return 2; + if (process.current_state.priority == "High") + return 3; ASSERT_NOT_REACHED(); return 3; case Column::Linear: return (int)process.current_state.linear; @@ -110,6 +112,8 @@ GVariant ProcessModel::data(const GModelIndex& index, Role role) const case Column::State: return process.current_state.state; case Column::User: return process.current_state.user; case Column::Priority: + if (process.current_state.priority == "Idle") + return String::empty(); if (process.current_state.priority == "High") return *m_high_priority_icon; if (process.current_state.priority == "Low") diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index af7716c0bd..2a841a1089 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -2376,6 +2376,7 @@ int Process::sys$get_shared_buffer_size(int shared_buffer_id) const char* to_string(Process::Priority priority) { switch (priority) { + case Process::IdlePriority: return "Idle"; case Process::LowPriority: return "Low"; case Process::NormalPriority: return "Normal"; case Process::HighPriority: return "High"; diff --git a/Kernel/Process.h b/Kernel/Process.h index 6c95fc644e..3029533852 100644 --- a/Kernel/Process.h +++ b/Kernel/Process.h @@ -43,6 +43,7 @@ public: static Vector all_processes(); enum Priority { + IdlePriority, LowPriority, NormalPriority, HighPriority, diff --git a/Kernel/Scheduler.cpp b/Kernel/Scheduler.cpp index 66f91c8871..52b6cc3965 100644 --- a/Kernel/Scheduler.cpp +++ b/Kernel/Scheduler.cpp @@ -18,6 +18,8 @@ static dword time_slice_for(Process::Priority priority) return 15; case Process::LowPriority: return 5; + case Process::IdlePriority: + return 1; } ASSERT_NOT_REACHED(); } @@ -385,7 +387,7 @@ void Scheduler::initialize() initialize_redirection(); s_colonel_process = Process::create_kernel_process("colonel", nullptr); // Make sure the colonel uses a smallish time slice. - s_colonel_process->set_priority(Process::LowPriority); + s_colonel_process->set_priority(Process::IdlePriority); load_task_register(s_redirection.selector); }