diff options
author | phk <phk@FreeBSD.org> | 1998-04-04 18:46:13 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 1998-04-04 18:46:13 +0000 |
commit | 9736ec2fbf9e02ec93125f4e016a7aa251b6225a (patch) | |
tree | 096523a7fd5704a2366e23ab34db87d92d4ca7b6 /sys/kern/kern_time.c | |
parent | 7d5c35ecb4060f3d883917be03f1403a66dfc82f (diff) | |
download | FreeBSD-src-9736ec2fbf9e02ec93125f4e016a7aa251b6225a.zip FreeBSD-src-9736ec2fbf9e02ec93125f4e016a7aa251b6225a.tar.gz |
Handle double fraction overflow in nano & microtime functions (spotted by Bruce)
Use tvtohz() a place where it fits.
Diffstat (limited to 'sys/kern/kern_time.c')
-rw-r--r-- | sys/kern/kern_time.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/sys/kern/kern_time.c b/sys/kern/kern_time.c index 786f67f..c6407f6 100644 --- a/sys/kern/kern_time.c +++ b/sys/kern/kern_time.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)kern_time.c 8.1 (Berkeley) 6/10/93 - * $Id: kern_time.c,v 1.44 1998/03/30 09:50:23 phk Exp $ + * $Id: kern_time.c,v 1.45 1998/04/04 13:25:25 phk Exp $ */ #include <sys/param.h> @@ -536,12 +536,9 @@ setitimer(p, uap) if (uap->which == ITIMER_REAL) { if (timerisset(&p->p_realtimer.it_value)) untimeout(realitexpire, (caddr_t)p, p->p_ithandle); - if (timerisset(&aitv.it_value)) { - getmicrotime(&ctv); - timevaladd(&aitv.it_value, &ctv); + if (timerisset(&aitv.it_value)) p->p_ithandle = timeout(realitexpire, (caddr_t)p, - hzto(&aitv.it_value)); - } + tvtohz(&aitv.it_value)); p->p_realtimer = aitv; } else p->p_stats->p_timer[uap->which] = aitv; |