summaryrefslogtreecommitdiff
path: root/scripts/atomic/fallbacks/inc_unless_negative
blob: 7b4b09868842d4ce978e0af532d7c0decfcbcb66 (plain)
1
2
3
4
5
6
7
8
9
10
cat <<EOF
	${int} c = raw_${atomic}_read(v);

	do {
		if (unlikely(c < 0))
			return false;
	} while (!raw_${atomic}_try_cmpxchg(v, &c, c + 1));

	return true;
EOF