diff options
author | Nicholas Marriott <nicholas.marriott@gmail.com> | 2009-02-07 19:27:11 +0000 |
---|---|---|
committer | Nicholas Marriott <nicholas.marriott@gmail.com> | 2009-02-07 19:27:11 +0000 |
commit | 523b2e863f09ebf9462790d81882d94846829f55 (patch) | |
tree | 116270dbed36837158e55ac20f1eea0808213016 /osdep-freebsd.c | |
parent | f53bcc87980c4a7dc85e62673c46ce67bb01de47 (diff) |
Tweak FreeBSD too.
Diffstat (limited to 'osdep-freebsd.c')
-rw-r--r-- | osdep-freebsd.c | 15 |
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); |