Do not enable lazy locking by default.
Do not enable lazy locking by default, because:
- It's fragile (applications can subvert detection of multi-threaded
mode).
- Thread caching amortizes locking overhead in the default
configuration.
diff --git a/INSTALL b/INSTALL
index fa32d05..a210ec5 100644
--- a/INSTALL
+++ b/INSTALL
@@ -128,8 +128,8 @@
a measurable impact on performance, since the compiler is forced to load
the page size from memory rather than embedding immediate values.
---disable-lazy-lock
- Disable code that wraps pthread_create() to detect when an application
+--enable-lazy-lock
+ Enable code that wraps pthread_create() to detect when an application
switches from single-threaded to multi-threaded mode, so that it can avoid
mutex locking/unlocking operations while in single-threaded mode. In
practice, this feature usually has little impact on performance unless
diff --git a/configure.ac b/configure.ac
index cbcefdf..e818f65 100644
--- a/configure.ac
+++ b/configure.ac
@@ -730,17 +730,17 @@
CPPFLAGS="$CPPFLAGS -D_REENTRANT"
-dnl Enable lazy locking by default.
+dnl Disable lazy locking by default.
AC_ARG_ENABLE([lazy_lock],
- [AS_HELP_STRING([--disable-lazy-lock],
- [Disable lazy locking (always lock, even when single-threaded)])],
+ [AS_HELP_STRING([--enable-lazy-lock],
+ [Enable lazy locking (only lock when multi-threaded)])],
[if test "x$enable_lazy_lock" = "xno" ; then
enable_lazy_lock="0"
else
enable_lazy_lock="1"
fi
],
-[enable_lazy_lock="1"]
+[enable_lazy_lock="0"]
)
if test "x$enable_lazy_lock" = "x1" ; then
AC_CHECK_HEADERS([dlfcn.h], , [AC_MSG_ERROR([dlfcn.h is missing])])