1193240Ssamcat <<EOF 2193240Ssam ${int} c = raw_${atomic}_read(v); 3193240Ssam 4193240Ssam do { 5193240Ssam if (unlikely(c < 0)) 6193240Ssam return false; 7193240Ssam } while (!raw_${atomic}_try_cmpxchg(v, &c, c + 1)); 8193240Ssam 9193240Ssam return true; 10193240SsamEOF 11193240Ssam