Date: Wed, 25 Jun 1997 20:09:09 +1000 From: Bruce Evans <bde@zeta.org.au> To: joerg_wunsch@uriah.heep.sax.de, msmith@atrad.adelaide.edu.au Cc: hackers@FreeBSD.ORG Subject: Re: libedit, etc. (CVS issues) Message-ID: <199706251009.UAA30436@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>Dang; I was too quick. Ok, rule of thumb is "once changed from the
>original import, should have $Id$", correct?
No, it is
1. Once changed from the vendor branch, should have $Id$".
More important rules:
2. Don't gratuitously change from the vendor branch.
3. Don't change just to add $Id$".
>I'll backtrack and catch the ones I've just committed.
Breaks rule 3.
>Does anyone know what the NetBSD function "timersub()" is supposed to do?
Yes :-). It is supposed to pollute <sys/time.h> with a kernel interface.
It is usually a poor way to subtract timevals in userland. ftp/util.c
gives two examples of how to misuse it, of the form:
double delta;
struct timeval start, finish, td;
...
timersub(&finish, &start, &td);
delta = td.tv_sec + tv.tv_usec / 1000000.0;
This can be done more efficiently and naturally directly:
...
delta = finish.tv_sec - start.tv_sec +
(finish.tv_usec - start.tv_usec) / 1000000.0;
ftp/util.c gives one example of how to use it, of the form:
struct timeval start, finish, td, start1, finish1, td1;
double delta;
...
if (something) {
timersub(&finish1, &start1, td1);
/* BUG (should use timeradd() here): */
start.tv_sec += start1.tv_sec;
start.tv_usec += start1.tv_usec;
}
/*
* BUG: timersub() only works on valid timevals, but `start'
* may be invalid here (its tv_usec may be > 1000000. However,
* the floating point calculation fixes up the value.
*/
timevalsub(&finish, &start, &td);
delta = td.tv_sec + tv.tv_usec / 1000000.0;
...
/* Something else using td1. */
This example could be changed to use a floating point td1, but that would
be slower on machines with slow floating point.
Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199706251009.UAA30436>
