Date: Sat, 8 Sep 2001 05:10:37 -0500 From: Alfred Perlstein <bright@mu.org> To: Nick Hibma <n_hibma@FreeBSD.ORG> Cc: Thomas Quinot <thomas@cuivre.fr.eu.org>, current@FreeBSD.ORG Subject: Re: top(1) takes ages to start up Message-ID: <20010908051037.E2965@elvis.mu.org> In-Reply-To: <20010908104633.P575-100000@heather.plazza.uk>; from n_hibma@FreeBSD.ORG on Sat, Sep 08, 2001 at 10:50:06AM %2B0100 References: <20010907163406.A18904@melusine.cuivre.fr.eu.org> <20010908104633.P575-100000@heather.plazza.uk>
next in thread | previous in thread | raw e-mail | index | archive | help
* Nick Hibma <n_hibma@FreeBSD.ORG> [010908 04:51] wrote: > > Why don't you add an early-out for namelength => 15 or put the > if-statement in the loop: This is a good idea, however it fails for the case when everyone has been assigned usernames that are less than 15 characters, I would suggest putting an upper bounds on the amount of times you'll call getpwent() to something like 200 or some other compile time (but command line over-rideable) number before defaulting to the max. > > Index: machine.c > =================================================================== > RCS file: /home/ncvs/src/usr.bin/top/machine.c,v > retrieving revision 1.44 > diff -u -r1.44 machine.c > --- machine.c 2001/05/31 22:36:51 1.44 > +++ machine.c 2001/09/08 09:48:03 > @@ -216,13 +216,16 @@ > while ((pw = getpwent()) != NULL) { > if (strlen(pw->pw_name) > namelength) > namelength = strlen(pw->pw_name); > + if (smpmode && namelength > 13) { > + namelength = 13; > + break; > + } else if (namelength > 15) { > + namelength = 15; > + break; > + } > } > if (namelength < 8) > namelength = 8; > - if (smpmode && namelength > 13) > - namelength = 13; > - else if (namelength > 15) > - namelength = 15; > > if ((kd = kvm_open("/dev/null", "/dev/null", "/dev/null", O_RDONLY, > "kvm_open")) == NULL) > return -1; > > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010908051037.E2965>