by ampatspell
in Code
// 1st -- non atomic count++; // 2nd -- atomic add OSAtomicAdd32Barrier(1, &count); // 3rd -- compare and swap bool success; do { int old = count; success = OSAtomicCompareAndSwap32Barrier(old, old + 1, &count); } while(!success);
This is reblog from my older blog @ tumblr.