linux/tools/build/feature/test-sync-compare-and-swap.c
<<
>>
Prefs
   1#include <stdint.h>
   2
   3volatile uint64_t x;
   4
   5int main(int argc, char *argv[])
   6{
   7        uint64_t old, new = argc;
   8
   9        argv = argv;
  10        do {
  11                old = __sync_val_compare_and_swap(&x, 0, 0);
  12        } while (!__sync_bool_compare_and_swap(&x, old, new));
  13        return old == new;
  14}
  15