Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.52 KB | None | 0 0
  1. --- a/lib/kernel/atomics.cl
  2. +++ b/lib/kernel/atomics.cl
  3. @@ -152,9 +152,11 @@ T atomic_cmpxchg(volatile Q T *p, T cmp, T val)
  4.    union { intptr_t i; volatile T *p; } u2;
  5.    u1.p = p;
  6.    u2.i = u1.i;
  7. -  __atomic_compare_exchange_n(u2.p, &cmp, val, false,
  8. -                              __ATOMIC_RELAXED, __ATOMIC_RELAXED);
  9. -  return cmp;
  10. +  if (!__atomic_compare_exchange_n(u2.p, &cmp, val, false,
  11. +                                   __ATOMIC_RELAXED, __ATOMIC_RELAXED))
  12. +    return cmp;
  13. +  else
  14. +    return val;
  15.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement