all disks + load averages

This commit is contained in:
Jos Dehaes 2021-10-06 10:51:36 +02:00
parent 548203e93d
commit bbba17cd35

View file

@ -358,6 +358,16 @@ namespace Cpu {
return current_cpu;
auto &cpu = current_cpu;
double avg[3];
if (getloadavg(avg, sizeof(avg)) < 0) {
Logger::error("failed to get load averages");
}
cpu.load_avg[0] = avg[0];
cpu.load_avg[1] = avg[1];
cpu.load_avg[2] = avg[2];
natural_t cpu_count;
natural_t i;
processor_info_array_t info_array;
@ -961,8 +971,7 @@ namespace Proc {
//? Update the details info box for process if active
if (show_detailed and got_detailed) {
_collect_details(detailed_pid, round(uptime), current_procs);
}
else if (show_detailed and not got_detailed and detailed.status != "Dead") {
} else if (show_detailed and not got_detailed and detailed.status != "Dead") {
detailed.status = "Dead";
redraw = true;
}
@ -975,14 +984,30 @@ namespace Proc {
//* Sort processes
if (sorted_change or not no_update) {
switch (v_index(sort_vector, sorting)) {
case 0: rng::sort(current_procs, rng::greater{}, &proc_info::pid); break;
case 1: rng::sort(current_procs, rng::greater{}, &proc_info::name); break;
case 2: rng::sort(current_procs, rng::greater{}, &proc_info::cmd); break;
case 3: rng::sort(current_procs, rng::greater{}, &proc_info::threads); break;
case 4: rng::sort(current_procs, rng::greater{}, &proc_info::user); break;
case 5: rng::sort(current_procs, rng::greater{}, &proc_info::mem); break;
case 6: rng::sort(current_procs, rng::greater{}, &proc_info::cpu_p); break;
case 7: rng::sort(current_procs, rng::greater{}, &proc_info::cpu_c); break;
case 0:
rng::sort(current_procs, rng::greater{}, &proc_info::pid);
break;
case 1:
rng::sort(current_procs, rng::greater{}, &proc_info::name);
break;
case 2:
rng::sort(current_procs, rng::greater{}, &proc_info::cmd);
break;
case 3:
rng::sort(current_procs, rng::greater{}, &proc_info::threads);
break;
case 4:
rng::sort(current_procs, rng::greater{}, &proc_info::user);
break;
case 5:
rng::sort(current_procs, rng::greater{}, &proc_info::mem);
break;
case 6:
rng::sort(current_procs, rng::greater{}, &proc_info::cpu_p);
break;
case 7:
rng::sort(current_procs, rng::greater{}, &proc_info::cpu_c);
break;
}
if (reverse) rng::reverse(current_procs);
@ -1009,18 +1034,13 @@ namespace Proc {
filter_found = 0;
for (auto &p : current_procs) {
if (not tree and not filter.empty()) {
if (not s_contains(to_string(p.pid), filter)
and not s_contains(p.name, filter)
and not s_contains(p.cmd, filter)
and not s_contains(p.user, filter)) {
if (not s_contains(to_string(p.pid), filter) and not s_contains(p.name, filter) and not s_contains(p.cmd, filter) and not s_contains(p.user, filter)) {
p.filtered = true;
filter_found++;
}
else {
} else {
p.filtered = false;
}
}
else {
} else {
p.filtered = false;
}
}
@ -1033,11 +1053,9 @@ namespace Proc {
if (collapser != current_procs.end()) {
if (collapse == expand) {
collapser->collapsed = not collapser->collapsed;
}
else if (collapse > -1) {
} else if (collapse > -1) {
collapser->collapsed = true;
}
else if (expand > -1) {
} else if (expand > -1) {
collapser->collapsed = false;
}
}
@ -1059,7 +1077,6 @@ namespace Proc {
//? Final sort based on tree index
rng::sort(current_procs, rng::less{}, &proc_info::tree_index);
if (reverse) rng::reverse(current_procs);
}
numpids = (int)current_procs.size() - filter_found;