[cpp-threads] Failed compare-and-swap

Howard Hinnant howard.hinnant at gmail.com
Wed Aug 1 19:41:36 BST 2007


On Aug 1, 2007, at 2:01 PM, Howard Hinnant wrote:

> Lawrence recently generously sent me the following semantics for the  
> compare_swap function proposed in N2324:
>
> bool atomic_compare_swap( volatile atomic_integral* a, integral*  
> old_v, integral new_v)
> {
>  if (a == x)
>  {
>      *a = new_v;
>      return true;
>   }
>   *old_v = *a;
>   return false;
> }

<arg>... copy/paste errors above:

bool atomic_compare_swap( volatile atomic_integral* a, integral*  
old_v, integral new_v)
{
  if (*a == *old_v)
  {
      *a = new_v;
      return true;
   }
   *old_v = *a;
   return false;
}

-Howard




More information about the cpp-threads mailing list