Module Name: src
Committed By: kamil
Date: Wed Jun 7 20:54:59 UTC 2017
Modified Files:
src/lib/libc/sys: kqueue.2
Log Message:
EV_SET(2) - simplify description
Note only the information that it does not evaluate multiple times its
parameters.
Suggested by <wiz>.
To generate a diff of this commit:
cvs rdiff -u -r1.44 -r1.45 src/lib/libc/sys/kqueue.2
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libc/sys/kqueue.2
diff -u src/lib/libc/sys/kqueue.2:1.44 src/lib/libc/sys/kqueue.2:1.45
--- src/lib/libc/sys/kqueue.2:1.44 Wed Jun 7 05:26:19 2017
+++ src/lib/libc/sys/kqueue.2 Wed Jun 7 20:54:59 2017
@@ -1,4 +1,4 @@
-.\" $NetBSD: kqueue.2,v 1.44 2017/06/07 05:26:19 abhinav Exp $
+.\" $NetBSD: kqueue.2,v 1.45 2017/06/07 20:54:59 kamil Exp $
.\"
.\" Copyright (c) 2000 Jonathan Lemon
.\" All rights reserved.
@@ -156,18 +156,7 @@ and
.Pp
.Fn EV_SET
is a macro which is provided for ease of initializing a kevent structure.
-It wraps an internal static inline function to prevent preprocessor misuse.
-In the past this code would behave incorrectly and damage process's memory,
-if incrementation or decrementation would be used as the first argument.
-This example has been taken from LLDB, that caused the memory corruption and
-inspired the
-.Nx
-developers for improving the implementation.
-.Bd -literal -offset indent
-EV_SET(&in_events[i++], fd.first, EVFILT_READ, EV_ADD, 0, 0, 0);
-.Ed
-.Pp
-This macro is now safe in all major BSDs.
+This macro does not evaluate its parameters multiple times.
.Pp
The
.Va kevent
@@ -681,6 +670,7 @@ The
function first appeared in
.Nx 6.0 .
.Pp
+The
.Fn EV_SET
-was converted from a macro implementation to the macro wrapping a static inline function in
+macro was protected from evaluating multiple times the first argument in
.Nx 8.0 .