On 2019-01-19 16:09:05, Ted Unangst <[email protected]> wrote:
> Bryan Linton wrote:
> > Hello tech@,
> >
> > I'd appreciate it if someone could review both this patch and my
> > analysis.
>
> There is no reason for etime to be a global. We can make it a local with the
> correct value in the two functions that use it, avoiding future problems as
> well.
>
I can confirm that your patch fixes the error as well, and is
probably the better option since it removes a global.
Thank you for reviewing everything.
--
Bryan
> Index: vmstat.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/systat/vmstat.c,v
> retrieving revision 1.89
> diff -u -p -r1.89 vmstat.c
> --- vmstat.c 17 Nov 2018 23:10:08 -0000 1.89
> +++ vmstat.c 19 Jan 2019 21:06:38 -0000
> @@ -97,7 +97,6 @@ int select_vm(void);
> int vm_keyboard_callback(int);
>
> static time_t t;
> -static double etime;
> static float hertz;
> static int nintr;
> static long *intrloc;
> @@ -336,6 +335,7 @@ showkre(void)
> u_int64_t inttotal, intcnt;
> int i, l, c;
> static int failcnt = 0, first_run = 0;
> + double etime;
>
> if (state == TIME) {
> if (!first_run) {
> @@ -676,7 +676,9 @@ copyinfo(struct Info *from, struct Info
> static void
> dinfo(int dn, int c)
> {
> - double words, atime;
> + double words, atime, etime;
> +
> + etime = naptime;
>
> c += DISKCOL;