Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
at v6.18 11 lines 176 B view raw
1cat <<EOF 2 ${int} dec, c = raw_${atomic}_read(v); 3 4 do { 5 dec = c - 1; 6 if (unlikely(dec < 0)) 7 break; 8 } while (!raw_${atomic}_try_cmpxchg(v, &c, dec)); 9 10 return dec; 11EOF