summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiltjo Posthuma <hiltjo@codemadness.org>2021-04-27 18:30:02 +0200
committerHiltjo Posthuma <hiltjo@codemadness.org>2021-04-28 18:26:57 +0200
commita211bea6a5f0ad811a679458cffed1e263c0ccfa (patch)
treebf7bdad35a890c69fe4e539b4724cd9213b39f37
parent675cfe6a73b369d1eb7adefa6e59dc37259a513d (diff)
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%).
-rw-r--r--Makefile4
-rw-r--r--xml.h2
2 files changed, 5 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index d738559..f79b9da 100644
--- 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
index 7b6bd35..ad53396 100644
--- 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 */