Use thread-safe nl_langinfo_l(), not nl_langinfo(). This gets rid of some setlocale() calls. The remaining call to setlocale() in pg_get_encoding_from_locale() is a query of the name of the current locale when none was provided (in a multi-threaded future that would need more work).
All known non-Windows targets have nl_langinfo_l(), from POSIX 2008, and for Windows we already do something thread-safe. Reviewed-by: Heikki Linnakangas <hlinn...@iki.fi> Discussion: https://postgr.es/m/CA%2BhUKGJqVe0%2BPv9dvC9dSums_PXxGo9SWcxYAMBguWJUGbWz-A%40mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/35eeea62302260ec07fd11b287e488768d4543e2 Modified Files -------------- src/port/chklocale.c | 67 +++++++++++++++------------------------------------- 1 file changed, 19 insertions(+), 48 deletions(-)