summaryrefslogtreecommitdiffstats
path: root/sys/sys/event.h
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2014-10-04 15:59:15 +0000
committerian <ian@FreeBSD.org>2014-10-04 15:59:15 +0000
commite35c0ad650d6714add810f7245b92c3af0f00159 (patch)
treecfe31fbad1617288c93a4ebbc3dfc895f0878078 /sys/sys/event.h
parent60bf73506ecd9b277bfeb5eaa63fa80715d98698 (diff)
downloadFreeBSD-src-e35c0ad650d6714add810f7245b92c3af0f00159.zip
FreeBSD-src-e35c0ad650d6714add810f7245b92c3af0f00159.tar.gz
Make kevent(2) periodic timer events more reliably periodic. The event
callout is now scheduled using the C_ABSOLUTE flag, and the absolute time of each event is calculated as the time the previous event was scheduled for plus the interval. This ensures that latency in processing a given event doesn't perturb the arrival time of any subsequent events. Reviewed by: jhb
Diffstat (limited to 'sys/sys/event.h')
-rw-r--r--sys/sys/event.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/sys/event.h b/sys/sys/event.h
index 47ebd76..c712f76 100644
--- a/sys/sys/event.h
+++ b/sys/sys/event.h
@@ -221,6 +221,7 @@ struct knote {
struct proc *p_proc; /* proc pointer */
struct aiocblist *p_aio; /* AIO job pointer */
struct aioliojob *p_lio; /* LIO job pointer */
+ sbintime_t *p_nexttime; /* next timer event fires at */
void *p_v; /* generic other pointer */
} kn_ptr;
struct filterops *kn_fop;
OpenPOWER on IntegriCloud