[ 
https://issues.apache.org/jira/browse/STDCXX-792?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12581592#action_12581592
 ] 

Farid Zaripov commented on STDCXX-792:
--------------------------------------

Possibly we should declare native __rw_atomic_xxx() functions as accepting the 
volatile reference, but this is an another issue for 5.0 release due to binary 
incompatibility of such change.

> __rw_locale::_C_manage() uses mutex based __rw_atomic_preincrement() even if 
> platform supports the native atomic operations
> ---------------------------------------------------------------------------------------------------------------------------
>
>                 Key: STDCXX-792
>                 URL: https://issues.apache.org/jira/browse/STDCXX-792
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: 22. Localization
>    Affects Versions: 4.1.2, 4.1.3, 4.1.4, 4.2.0
>         Environment: All
>            Reporter: Farid Zaripov
>            Assignee: Farid Zaripov
>             Fix For: 4.2.1
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> In __rw_locale::_C_manage() (src/locale_body.cpp, line 808), the static 
> variable ginit declared as volatile, but __rw_atomic_preincrement() 
> functions, which are implemented using atomic operations, accepting the 
> non-volatile reference in parameter list. As a result the template version 
> __rw_atomic_preincrement<volatile long>() (which is implemented using mutex 
> object) is used.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to