summaryrefslogtreecommitdiffstats
path: root/procname.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2009-07-26 19:42:26 +0000
committerNicholas Marriott <nicm@openbsd.org>2009-07-26 19:42:26 +0000
commit6b3b852ebcaa61d3a03b918370939cfd6af8c191 (patch)
treec29b6f29728bdb39d67548bfd8b4c96820093a96 /procname.c
parent34a82e7629073b8a6bb3474862d5f36b670338a3 (diff)
Go to the next if the current best process is replaced, don't keep comparing it
with itself. Also fix process name comparison.
Diffstat (limited to 'procname.c')
-rw-r--r--procname.c35
1 files changed, 21 insertions, 14 deletions
diff --git a/procname.c b/procname.c
index e28b7535..d7644898 100644
--- a/procname.c
+++ b/procname.c
@@ -82,41 +82,48 @@ retry:
continue;
}
- if (is_runnable(p) && !is_runnable(bestp))
+ if (is_runnable(p) && !is_runnable(bestp)) {
bestp = p;
- else if (!is_runnable(p) && is_runnable(bestp))
+ continue;
+ } else if (!is_runnable(p) && is_runnable(bestp))
continue;
- if (!is_stopped(p) && is_stopped(bestp))
+ if (!is_stopped(p) && is_stopped(bestp)) {
bestp = p;
- else if (is_stopped(p) && !is_stopped(bestp))
+ continue;
+ } else if (is_stopped(p) && !is_stopped(bestp))
continue;
- if (p->p_estcpu > bestp->p_estcpu)
+ if (p->p_estcpu > bestp->p_estcpu) {
bestp = p;
- else if (p->p_estcpu < bestp->p_estcpu)
+ continue;
+ } else if (p->p_estcpu < bestp->p_estcpu)
continue;
- if (p->p_slptime < bestp->p_slptime)
+ if (p->p_slptime < bestp->p_slptime) {
bestp = p;
- else if (p->p_slptime > bestp->p_slptime)
+ continue;
+ } else if (p->p_slptime > bestp->p_slptime)
continue;
- if (p->p_flag & P_SINTR && !(bestp->p_flag & P_SINTR))
+ if (p->p_flag & P_SINTR && !(bestp->p_flag & P_SINTR)) {
bestp = p;
- else if (!(p->p_flag & P_SINTR) && bestp->p_flag & P_SINTR)
+ continue;
+ } else if (!(p->p_flag & P_SINTR) && bestp->p_flag & P_SINTR)
continue;
if (LIST_FIRST(&p->p_children) == NULL &&
- LIST_FIRST(&bestp->p_children) != NULL) /* XXX ugh */
+ LIST_FIRST(&bestp->p_children) != NULL) { /* XXX ugh */
bestp = p;
- else if (LIST_FIRST(&p->p_children) != NULL &&
+ continue;
+ } else if (LIST_FIRST(&p->p_children) != NULL &&
LIST_FIRST(&bestp->p_children) == NULL)
continue;
- if (strcmp(p->p_comm, p->p_comm) < 0)
+ if (strcmp(p->p_comm, bestp->p_comm) < 0) {
bestp = p;
- else if (strcmp(p->p_comm, p->p_comm) > 0)
+ continue;
+ } else if (strcmp(p->p_comm, bestp->p_comm) > 0)
continue;
if (p->p_pid > bestp->p_pid)