On 2025-04-12 14:01, Bruno Haible wrote:
Paul Eggert wrote:
To me it means that if two threads simultanously call localeconv and any
other function (including setlocale and uselocale!), localeconv might
have a data race.

You mean, "localeconv will *not* have a data race" ?

Yes, sorry; that's what I get for sending email in a hurry just before a meeting on a different topic....


However, if two threads simultanously call localeconv
you might have a data race and the result might not be valid.

Yup, that's what I understood. Fortunately the unit test proves that
this is a non-issue on the systems in use nowadays. Probably because
a data race in localeconv() would lead to an MT-safety bug in *printf,
and such a bug would have been detected and fixed over the last 20 years.

Yes, and like you I don't know why POSIX is worded the way it is. If I had more time I'd ask them....

Reply via email to