This is the mail archive of the
mailing list for the Cygwin project.
- From: Andy Koppe <andy dot koppe at gmail dot com>
- To: Cygwin Tech List <cygwin at cygwin dot com>
- Date: Tue, 4 Aug 2009 21:59:21 +0100
- Subject: _setlocale_r
_setlocale_r isn't really reentrant, is it? It invokes loadlocale(),
which writes to the global function pointers __mbtowc and __wctomb,
i.e. there's a single global locale setting.
Its man page needs to be corrected:
`_localeconv_r' and `_setlocale_r' are reentrant versions of
`localeconv' and `setlocale' respectively. The extra argument REENT is
a pointer to a reentrancy structure.
(Alternatively, making them reentrant by making the locale settings
part of the REENT structure might be rather useful actually, for at
least two reasons: different threads could use different locales, and
you could convert between different charsets using the the _r versions
of the mb functions without having to switch locale all the time.)
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple