mirror of
https://github.com/aristocratos/btop.git
synced 2024-09-29 16:51:40 +13:00
Changed: From rng::sort() to rng::stable_sort() for more stability
This commit is contained in:
parent
a6d27c1cc4
commit
5453e82a95
2 changed files with 46 additions and 25 deletions
|
@ -1631,17 +1631,29 @@ namespace Proc {
|
||||||
|
|
||||||
//* Sort processes
|
//* Sort processes
|
||||||
if (sorted_change or not no_update) {
|
if (sorted_change or not no_update) {
|
||||||
|
if (reverse) {
|
||||||
switch (v_index(sort_vector, sorting)) {
|
switch (v_index(sort_vector, sorting)) {
|
||||||
case 0: rng::sort(current_procs, rng::greater{}, &proc_info::pid); break;
|
case 0: rng::stable_sort(current_procs, rng::less{}, &proc_info::pid); break;
|
||||||
case 1: rng::sort(current_procs, rng::greater{}, &proc_info::name); break;
|
case 1: rng::stable_sort(current_procs, rng::less{}, &proc_info::name); break;
|
||||||
case 2: rng::sort(current_procs, rng::greater{}, &proc_info::cmd); break;
|
case 2: rng::stable_sort(current_procs, rng::less{}, &proc_info::cmd); break;
|
||||||
case 3: rng::sort(current_procs, rng::greater{}, &proc_info::threads); break;
|
case 3: rng::stable_sort(current_procs, rng::less{}, &proc_info::threads); break;
|
||||||
case 4: rng::sort(current_procs, rng::greater{}, &proc_info::user); break;
|
case 4: rng::stable_sort(current_procs, rng::less{}, &proc_info::user); break;
|
||||||
case 5: rng::sort(current_procs, rng::greater{}, &proc_info::mem); break;
|
case 5: rng::stable_sort(current_procs, rng::less{}, &proc_info::mem); break;
|
||||||
case 6: rng::sort(current_procs, rng::greater{}, &proc_info::cpu_p); break;
|
case 6: rng::stable_sort(current_procs, rng::less{}, &proc_info::cpu_p); break;
|
||||||
case 7: rng::sort(current_procs, rng::greater{}, &proc_info::cpu_c); break;
|
case 7: rng::stable_sort(current_procs, rng::less{}, &proc_info::cpu_c); break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
switch (v_index(sort_vector, sorting)) {
|
||||||
|
case 0: rng::stable_sort(current_procs, rng::greater{}, &proc_info::pid); break;
|
||||||
|
case 1: rng::stable_sort(current_procs, rng::greater{}, &proc_info::name); break;
|
||||||
|
case 2: rng::stable_sort(current_procs, rng::greater{}, &proc_info::cmd); break;
|
||||||
|
case 3: rng::stable_sort(current_procs, rng::greater{}, &proc_info::threads); break;
|
||||||
|
case 4: rng::stable_sort(current_procs, rng::greater{}, &proc_info::user); break;
|
||||||
|
case 5: rng::stable_sort(current_procs, rng::greater{}, &proc_info::mem); break;
|
||||||
|
case 6: rng::stable_sort(current_procs, rng::greater{}, &proc_info::cpu_p); break;
|
||||||
|
case 7: rng::stable_sort(current_procs, rng::greater{}, &proc_info::cpu_c); break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (reverse) rng::reverse(current_procs);
|
|
||||||
|
|
||||||
//* When sorting with "cpu lazy" push processes over threshold cpu usage to the front regardless of cumulative usage
|
//* When sorting with "cpu lazy" push processes over threshold cpu usage to the front regardless of cumulative usage
|
||||||
if (not tree and not reverse and sorting == "cpu lazy") {
|
if (not tree and not reverse and sorting == "cpu lazy") {
|
||||||
|
@ -1714,9 +1726,7 @@ namespace Proc {
|
||||||
}
|
}
|
||||||
|
|
||||||
//? Final sort based on tree index
|
//? Final sort based on tree index
|
||||||
rng::sort(current_procs, rng::less{}, &proc_info::tree_index);
|
rng::stable_sort(current_procs, rng::less{}, &proc_info::tree_index);
|
||||||
if (reverse) rng::reverse(current_procs);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
numpids = (int)current_procs.size() - filter_found;
|
numpids = (int)current_procs.size() - filter_found;
|
||||||
|
|
|
@ -1306,17 +1306,29 @@ namespace Proc {
|
||||||
|
|
||||||
//* Sort processes
|
//* Sort processes
|
||||||
if (sorted_change or not no_update) {
|
if (sorted_change or not no_update) {
|
||||||
|
if (reverse) {
|
||||||
switch (v_index(sort_vector, sorting)) {
|
switch (v_index(sort_vector, sorting)) {
|
||||||
case 0: rng::sort(current_procs, rng::greater{}, &proc_info::pid); break;
|
case 0: rng::stable_sort(current_procs, rng::less{}, &proc_info::pid); break;
|
||||||
case 1: rng::sort(current_procs, rng::greater{}, &proc_info::name); break;
|
case 1: rng::stable_sort(current_procs, rng::less{}, &proc_info::name); break;
|
||||||
case 2: rng::sort(current_procs, rng::greater{}, &proc_info::cmd); break;
|
case 2: rng::stable_sort(current_procs, rng::less{}, &proc_info::cmd); break;
|
||||||
case 3: rng::sort(current_procs, rng::greater{}, &proc_info::threads); break;
|
case 3: rng::stable_sort(current_procs, rng::less{}, &proc_info::threads); break;
|
||||||
case 4: rng::sort(current_procs, rng::greater{}, &proc_info::user); break;
|
case 4: rng::stable_sort(current_procs, rng::less{}, &proc_info::user); break;
|
||||||
case 5: rng::sort(current_procs, rng::greater{}, &proc_info::mem); break;
|
case 5: rng::stable_sort(current_procs, rng::less{}, &proc_info::mem); break;
|
||||||
case 6: rng::sort(current_procs, rng::greater{}, &proc_info::cpu_p); break;
|
case 6: rng::stable_sort(current_procs, rng::less{}, &proc_info::cpu_p); break;
|
||||||
case 7: rng::sort(current_procs, rng::greater{}, &proc_info::cpu_c); break;
|
case 7: rng::stable_sort(current_procs, rng::less{}, &proc_info::cpu_c); break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
switch (v_index(sort_vector, sorting)) {
|
||||||
|
case 0: rng::stable_sort(current_procs, rng::greater{}, &proc_info::pid); break;
|
||||||
|
case 1: rng::stable_sort(current_procs, rng::greater{}, &proc_info::name); break;
|
||||||
|
case 2: rng::stable_sort(current_procs, rng::greater{}, &proc_info::cmd); break;
|
||||||
|
case 3: rng::stable_sort(current_procs, rng::greater{}, &proc_info::threads); break;
|
||||||
|
case 4: rng::stable_sort(current_procs, rng::greater{}, &proc_info::user); break;
|
||||||
|
case 5: rng::stable_sort(current_procs, rng::greater{}, &proc_info::mem); break;
|
||||||
|
case 6: rng::stable_sort(current_procs, rng::greater{}, &proc_info::cpu_p); break;
|
||||||
|
case 7: rng::stable_sort(current_procs, rng::greater{}, &proc_info::cpu_c); break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (reverse) rng::reverse(current_procs);
|
|
||||||
|
|
||||||
//* When sorting with "cpu lazy" push processes over threshold cpu usage to the front regardless of cumulative usage
|
//* When sorting with "cpu lazy" push processes over threshold cpu usage to the front regardless of cumulative usage
|
||||||
if (not tree and not reverse and sorting == "cpu lazy") {
|
if (not tree and not reverse and sorting == "cpu lazy") {
|
||||||
|
@ -1382,8 +1394,7 @@ namespace Proc {
|
||||||
}
|
}
|
||||||
|
|
||||||
//? Final sort based on tree index
|
//? Final sort based on tree index
|
||||||
rng::sort(current_procs, rng::less{}, &proc_info::tree_index);
|
rng::stable_sort(current_procs, rng::less{}, &proc_info::tree_index);
|
||||||
if (reverse) rng::reverse(current_procs);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
numpids = (int)current_procs.size() - filter_found;
|
numpids = (int)current_procs.size() - filter_found;
|
||||||
|
|
Loading…
Reference in a new issue