kit

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

builtin_18_atomic_cas_failure.c (408B)


      1 int test_main(void) {
      2   int x = 7;
      3   int expected = 5; /* mismatch: x != expected */
      4   int ok = __atomic_compare_exchange_n(&x, &expected, 99, 0, __ATOMIC_SEQ_CST,
      5                                        __ATOMIC_RELAXED);
      6   /* ok==0, x stays at 7, expected is updated to 7 (the prior value). */
      7   /* expected*6=42, ok==0, x==7. Return: expected*6 + ok + (x-7) = 42 */
      8   return expected * 6 + ok + (x - 7);
      9 }