summaryrefslogtreecommitdiffstats
path: root/osdep-freebsd.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2009-02-07 19:27:11 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2009-02-07 19:27:11 +0000
commit523b2e863f09ebf9462790d81882d94846829f55 (patch)
tree116270dbed36837158e55ac20f1eea0808213016 /osdep-freebsd.c
parentf53bcc87980c4a7dc85e62673c46ce67bb01de47 (diff)
Tweak FreeBSD too.
Diffstat (limited to 'osdep-freebsd.c')
-rw-r--r--osdep-freebsd.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/osdep-freebsd.c b/osdep-freebsd.c
index 66a9e48f..556235e6 100644
--- a/osdep-freebsd.c
+++ b/osdep-freebsd.c
@@ -1,4 +1,4 @@
-/* $Id: osdep-freebsd.c,v 1.6 2009-02-07 19:24:50 nicm Exp $ */
+/* $Id: osdep-freebsd.c,v 1.7 2009-02-07 19:27:11 nicm Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -22,6 +22,7 @@
#include <sys/proc.h>
#include <sys/stat.h>
#include <sys/sysctl.h>
+#include <sys/time.h>
#include <sys/user.h>
#include <err.h>
@@ -87,12 +88,12 @@ retry:
bestp = p;
if (!is_stopped(p) && is_stopped(bestp))
bestp = p;
-
- if (p->ki_estcpu < bestp->ki_estcpu)
- continue;
- if (p->ki_slptime > bestp->ki_slptime)
- continue;
- bestp = p;
+ if (p->ki_estcpu > bestp->ki_estcpu)
+ bestp = p;
+ if (p->ki_slptime < bestp->ki_slptime)
+ bestp = p;
+ if (timercmp(&p->ki_rusage_ch, &bestp->ki_rusage_ch, <))
+ bestp = p;
}
if (bestp != NULL) {
procname = get_proc_argv0(bestp->ki_pid);