[Mesa-dev] [PATCH 02/21] glsl: protect locale_t with a mutex

Kenneth Graunke kenneth at whitecape.org
Mon May 5 15:04:45 PDT 2014


On 05/05/2014 10:01 AM, Ian Romanick wrote:
> On 05/04/2014 02:14 PM, Chia-I Wu wrote:
>> On Sat, May 3, 2014 at 1:52 AM, Ian Romanick <idr at freedesktop.org> wrote:
>>> On 04/22/2014 01:58 AM, Chia-I Wu wrote:
>>>> There may be two contexts compiling shaders at the same time.  locale_t needs
>>>> to be protected.
>>>
>>> Rather than calling glsl_initialize_strtod from other places in the
>>> compiler, it seems better to use call_once from the strtof and strtod
>>> functions.
>> How about having a static object to call newlocale()/freelocale() in
>> its constructor/destructor?  It will impose no overead on
>> glsl_strtod(), at the expense of little wasted memory when the
>> applications do not compile shaders.
> 
> The problem I see with that is we don't know what order constructors on
> global objects will occur.  Are we sure the contructor will be invoked
> before we need the locale now and in the future?

These functions are used during lexing to read floating point
literals...without breaking on locales where the decimal point is a comma.

All constructors have definitely been run by that point, and I can't
imagine we'll ever need to call locale-independent strtof/strtod from
other constructors.

--Ken

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140505/7664e808/attachment.sig>


More information about the mesa-dev mailing list