11 lines · 176 B · Text
RawDownload
cat <<EOF	${int} dec, c = raw_${atomic}_read(v); 	do {		dec = c - 1;		if (unlikely(dec < 0))			break;	} while (!raw_${atomic}_try_cmpxchg(v, &c, dec)); 	return dec;EOF