aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/kern_time.c
diff options
context:
space:
mode:
authorJulian Elischer <julian@FreeBSD.org>1996-09-30 19:28:52 +0000
committerJulian Elischer <julian@FreeBSD.org>1996-09-30 19:28:52 +0000
commit793dc173fa1b0d5d9b4f3b168b23a646119e73d6 (patch)
treec935bb23d171df7f81a7d2f0faad08532f7ea899 /sys/kern/kern_time.c
parent548e4cb103969107c40ec4a0c260c01d9acb6cc5 (diff)
downloadsrc-793dc173fa1b0d5d9b4f3b168b23a646119e73d6.tar.gz
src-793dc173fa1b0d5d9b4f3b168b23a646119e73d6.zip
if we jump the time, we need to check all the process real interval timers.
Notes
Notes: svn path=/head/; revision=18582
Diffstat (limited to 'sys/kern/kern_time.c')
-rw-r--r--sys/kern/kern_time.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/kern/kern_time.c b/sys/kern/kern_time.c
index 775b2bad7c2a..c94d8cfdcbaf 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.16 1996/06/08 11:55:32 bde Exp $
+ * $Id: kern_time.c,v 1.17 1996/07/12 07:55:35 bde Exp $
*/
#include <sys/param.h>
@@ -114,7 +114,6 @@ settimeofday(p, uap, retval)
(error = copyin((caddr_t)uap->tzp, (caddr_t)&atz, sizeof(atz))))
return (error);
if (uap->tv) {
- /* WHAT DO WE DO ABOUT PENDING REAL-TIME TIMEOUTS??? */
s = splclock();
/*
* Calculate delta directly to minimize clock interrupt
@@ -136,6 +135,10 @@ settimeofday(p, uap, retval)
timevalfix(&delta);
timevaladd(&boottime, &delta);
timevaladd(&runtime, &delta);
+ /* re-use 'p' */
+ for (p = allproc.lh_first; p != 0; p = p->p_list.le_next)
+ if (timerisset(&p->p_realtimer.it_value))
+ timevaladd(&p->p_realtimer.it_value, &delta);
LEASE_UPDATETIME(delta.tv_sec);
splx(s);
resettodr();