diff options
author | phk <phk@FreeBSD.org> | 1998-01-11 00:44:31 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 1998-01-11 00:44:31 +0000 |
commit | 8a2e578b97eae342a68b0c47bf3bd7f938f4d2aa (patch) | |
tree | 87dc570121653b42337d2c7fc30ffa0ea5ebcf99 | |
parent | 1b3b485dd95106bf6d621b1c70489d40371a81b7 (diff) | |
download | FreeBSD-src-8a2e578b97eae342a68b0c47bf3bd7f938f4d2aa.zip FreeBSD-src-8a2e578b97eae342a68b0c47bf3bd7f938f4d2aa.tar.gz |
Fix softclock calling so we don't loose timeouts (I broke this ~10h ago)
-rw-r--r-- | sys/kern/kern_clock.c | 8 | ||||
-rw-r--r-- | sys/kern/kern_tc.c | 8 | ||||
-rw-r--r-- | sys/kern/kern_timeout.c | 8 | ||||
-rw-r--r-- | sys/sys/callout.h | 4 |
4 files changed, 16 insertions, 12 deletions
diff --git a/sys/kern/kern_clock.c b/sys/kern/kern_clock.c index 87ac79c..8688da2 100644 --- a/sys/kern/kern_clock.c +++ b/sys/kern/kern_clock.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)kern_clock.c 8.5 (Berkeley) 1/21/94 - * $Id: kern_clock.c,v 1.49 1998/01/10 13:16:19 phk Exp $ + * $Id: kern_clock.c,v 1.50 1998/01/10 14:55:02 phk Exp $ */ /* Portions of this software are covered by the following: */ @@ -629,7 +629,11 @@ hardclock(frame) CPU_CLOCKUPDATE(&time, &newtime); } - setsoftclock(); + if (TAILQ_FIRST(&callwheel[ticks & callwheelmask]) == NULL) { + softticks++; + } else { + setsoftclock(); + } } void diff --git a/sys/kern/kern_tc.c b/sys/kern/kern_tc.c index 87ac79c..8688da2 100644 --- a/sys/kern/kern_tc.c +++ b/sys/kern/kern_tc.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)kern_clock.c 8.5 (Berkeley) 1/21/94 - * $Id: kern_clock.c,v 1.49 1998/01/10 13:16:19 phk Exp $ + * $Id: kern_clock.c,v 1.50 1998/01/10 14:55:02 phk Exp $ */ /* Portions of this software are covered by the following: */ @@ -629,7 +629,11 @@ hardclock(frame) CPU_CLOCKUPDATE(&time, &newtime); } - setsoftclock(); + if (TAILQ_FIRST(&callwheel[ticks & callwheelmask]) == NULL) { + softticks++; + } else { + setsoftclock(); + } } void diff --git a/sys/kern/kern_timeout.c b/sys/kern/kern_timeout.c index a3c4462..2390b4d 100644 --- a/sys/kern/kern_timeout.c +++ b/sys/kern/kern_timeout.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)kern_clock.c 8.5 (Berkeley) 1/21/94 - * $Id: kern_timeout.c,v 1.49 1998/01/10 13:16:26 phk Exp $ + * $Id: kern_timeout.c,v 1.50 1998/01/10 14:55:14 phk Exp $ */ /* Portions of this software are covered by the following: */ @@ -82,7 +82,7 @@ struct callout_list callfree; int callwheelsize, callwheelbits, callwheelmask; struct callout_tailq *callwheel; -static int softticks; /* Like ticks, but for softclock(). */ +int softticks; /* Like ticks, but for softclock(). */ static struct callout *nextsoftcheck; /* Next callout to be checked. */ /* @@ -119,10 +119,6 @@ softclock() * we last allowed interrupts. */ - if (TAILQ_FIRST(&callwheel[ticks & callwheelmask]) == NULL) { - softticks++; - return; - } (void)splsoftclock(); diff --git a/sys/sys/callout.h b/sys/sys/callout.h index 3695c6c..57ae78f 100644 --- a/sys/sys/callout.h +++ b/sys/sys/callout.h @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)callout.h 8.2 (Berkeley) 1/21/94 - * $Id: callout.h,v 1.9 1997/09/24 16:39:27 gibbs Exp $ + * $Id: callout.h,v 1.10 1997/12/01 05:45:15 davidg Exp $ */ #ifndef _SYS_CALLOUT_H_ @@ -66,7 +66,7 @@ extern struct callout_list callfree; extern struct callout *callout; extern int ncallout; extern struct callout_tailq *callwheel; -extern int callwheelsize, callwheelbits, callwheelmask; +extern int callwheelsize, callwheelbits, callwheelmask, softticks; #endif /* KERNEL */ #endif /* _SYS_CALLOUT_H_ */ |