Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 03 Nov 2012 14:16:29 -0600
From:      Ian Lepore <freebsd@damnhippie.dyndns.org>
To:        d@delphij.net
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Xin LI <delphij@freebsd.org>
Subject:   Re: svn commit: r242519 - head/usr.sbin/watchdogd
Message-ID:  <1351973789.1120.122.camel@revolution.hippie.lan>
In-Reply-To: <50957588.5070504@delphij.net>
References:  <201211031838.qA3IcSUR021854@svn.freebsd.org> <1351968359.1120.106.camel@revolution.hippie.lan> <50957588.5070504@delphij.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 2012-11-03 at 12:50 -0700, Xin Li wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
> 
> On 11/3/12 11:45 AM, Ian Lepore wrote:
> > On Sat, 2012-11-03 at 18:38 +0000, Xin LI wrote:
> >> Author: delphij Date: Sat Nov  3 18:38:28 2012 New Revision:
> >> 242519 URL: http://svn.freebsd.org/changeset/base/242519
> > [...]
> > Shouldn't we also change the type of the variable 'a' from double
> > to int64 (and the strtod() and the 1e9 constant), thus removing all
> > dregs of floating point where it isn't really needed?  (Sorry, but
> > 20 years of working on wimpy embedded systems without FP hardware
> > just make me blurt out these things automatically).
> 
> While it do make sense in practical (in my opinion), I think that
> would lose functionality because the watchdog can be programmed in a
> manner that timeout is set to smaller than 1 second (not for the
> demonized case).  Maybe we can make it an build option?
> 
> Index: Makefile
> ===================================================================
> - --- Makefile    (revision 242519)
> +++ Makefile    (working copy)
> @@ -7,7 +7,15 @@ MAN=   watchdogd.8 watchdog.8
>  LDADD= -lutil
>  DPADD= ${LIBUTIL}
> 
> +.if defined(SMALL)
> +CFLAGS+=       -DSMALL
> +.endif
> +
>  .include <bsd.prog.mk>
> 
>  test:  ${PROG}
> +.if defined(SMALL)
> +       ./${PROG} -t 1
> +.else
>         ./${PROG} -t 1.0
> +.endif
> Index: watchdogd.c
> ===================================================================
> - --- watchdogd.c (revision 242519)
> +++ watchdogd.c (working copy)
> @@ -241,7 +241,11 @@ parseargs(int argc, char *argv[])
>  {
>         int c;
>         char *p;
> +#if defined(SMALL)
> +       long a;
> +#else
>         double a;
> +#endif
> 
>         c = strlen(argv[0]);
>         if (argv[0][c - 1] == 'd')
> @@ -273,7 +277,11 @@ parseargs(int argc, char *argv[])
>                 case 't':
>                         p = NULL;
>                         errno = 0;
> +#if defined(SMALL)
> +                       a = strtol(optarg, &p, 0);
> +#else
>                         a = strtod(optarg, &p);
> +#endif
>                         if ((p != NULL && *p != '\0') || errno != 0)
>                                 errx(EX_USAGE, "-t argument is not a
> number");
>                         if (a < 0)
> 

Oh.  I remembered that < WD_TO_1SEC check and somehow completely forgot
the is_daemon part and its implication; I just thought timeouts of less
than 1 second weren't allowed.  It's hard for me to imagine someone
setting the timeout to less than 1 second, but if that's been a
supported feature all along then we should probably just leave things
as-is.  Getting libm out of the picture was the big win, the remaining
FP code is a pretty small thing.

-- Ian





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1351973789.1120.122.camel>