[ 
https://issues.apache.org/jira/browse/GEODE-2531?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15886996#comment-15886996
 ] 

ASF GitHub Bot commented on GEODE-2531:
---------------------------------------

Github user pivotal-jbarrett commented on a diff in the pull request:

    https://github.com/apache/geode-native/pull/37#discussion_r103355539
  
    --- Diff: src/cppcache/src/statistics/AtomicStatisticsImpl.cpp ---
    @@ -330,7 +329,13 @@ double AtomicStatisticsImpl::_incDouble(int32_t 
offset, double delta) {
         throw IllegalArgumentException(s);
       }
     
    -  return (doubleStorage[offset] += delta);
    +  double expected = doubleStorage[offset];
    +  double value;
    +  do {
    +    value = expected + delta;
    +  } while (!doubleStorage[offset].compare_exchange_weak(expected, value));
    --- End diff --
    
    Yes. Some of the documentation for std::atomic suck out there and don't 
clearly state that expected is updated if the compare fails.


> Replace HostAsm::atomic* and AtomicInc with std::atomic
> -------------------------------------------------------
>
>                 Key: GEODE-2531
>                 URL: https://issues.apache.org/jira/browse/GEODE-2531
>             Project: Geode
>          Issue Type: Sub-task
>          Components: native client
>            Reporter: Jacob S. Barrett
>            Assignee: Jacob S. Barrett
>
> Replace {{HostAsm::atomic*}} and {{AtomicInc}} with 
> {{[std::atomic|http://en.cppreference.com/w/cpp/atomic/atomic]}}.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to