commit a211bea6a5f0ad811a679458cffed1e263c0ccfa
parent 675cfe6a73b369d1eb7adefa6e59dc37259a513d
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Tue, 27 Apr 2021 18:30:02 +0200
enable unlocked I/O by default
getchar_unlocked is part of POSIX and should be supported by most platforms. On
all tested platforms it has a performance benefit, sometimes smallish (<12%),
sometimes large (~40%).
Diffstat:
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
@@ -15,6 +15,10 @@ SFEED_CFLAGS = ${CFLAGS}
SFEED_LDFLAGS = ${LDFLAGS}
SFEED_CPPFLAGS = -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -D_BSD_SOURCE
+# uncomment for convervative locked I/O.
+#SFEED_CPPFLAGS = -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -D_BSD_SOURCE \
+# -DGETNEXT=getchar
+
BIN = \
sfeed\
sfeed_atom\
diff --git a/xml.h b/xml.h
@@ -24,7 +24,7 @@ typedef struct xmlparser {
#ifndef GETNEXT
/* GETNEXT overridden to reduce function call overhead and further
context optimizations. */
- #define GETNEXT getchar
+ #define GETNEXT getchar_unlocked
#endif
/* current tag */