summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorPeter Eisentraut2025-03-27 06:52:22 +0000
committerPeter Eisentraut2025-03-27 09:54:28 +0000
commitb98be8a2a2a6196dc24631dfe4d8785b86800d23 (patch)
treeb4b1579cb103bf66f92c24c67be884c53421cd79 /configure.ac
parent4a02af8b1a5f3f8221c7381bc4de08a3d830f682 (diff)
Provide thread-safe pg_localeconv_r().
This involves four different implementation strategies: 1. For Windows, we now require _configthreadlocale() to be available and work (commit f1da075d9a0), and the documentation says that the object returned by localeconv() is in thread-local memory. 2. For glibc, we translate to nl_langinfo_l() calls, because it offers the same information that way as an extension, and that API is thread-safe. 3. For macOS/*BSD, use localeconv_l(), which is thread-safe. 4. For everything else, use uselocale() to set the locale for the thread, and use a big ugly lock to defend against the returned object being concurrently clobbered. In practice this currently means only Solaris. The new call is used in pg_locale.c, replacing calls to setlocale() and localeconv(). Author: Thomas Munro <thomas.munro@gmail.com> Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi> Reviewed-by: Peter Eisentraut <peter@eisentraut.org> Discussion: https://postgr.es/m/CA%2BhUKGJqVe0%2BPv9dvC9dSums_PXxGo9SWcxYAMBguWJUGbWz-A%40mail.gmail.com
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac1
1 files changed, 1 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index ecbc2734829..537e654e7b3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1764,6 +1764,7 @@ AC_CHECK_FUNCS(m4_normalize([
getpeerucred
inet_pton
kqueue
+ localeconv_l
mbstowcs_l
memset_s
posix_fallocate