kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

builtin_17_atomic_cas_success.c (338B)


      1 int test_main(void) {
      2   int x = 10;
      3   int expected = 10;
      4   /* CAS: x==expected -> store 42, return 1. x becomes 42. */
      5   int ok = __atomic_compare_exchange_n(&x, &expected, 42, 0, __ATOMIC_SEQ_CST,
      6                                        __ATOMIC_SEQ_CST);
      7   /* ok==1, x==42, expected==10 (unchanged on success). */
      8   return x + ok - 1;
      9 }