Sign in
zircon-guest
/
third_party
/
linux
/
36f5b1d83ab5571e6661d1004c236db07e53a38c
/
.
/
scripts
/
atomic
/
fallbacks
/
dec_if_positive
blob: c52eacec43c860f2f3ec1c0aaceaa9eb1d410d19 [
file
] [
log
] [
blame
]
cat
<<
EOF
static
inline
$
{
ret
}
$
{
atomic
}
_dec_if_positive
(
$
{
atomic
}
_t
*
v
)
{
$
{
int
}
dec
,
c
=
$
{
atomic
}
_read
(
v
);
do
{
dec
=
c
-
1
;
if
(
unlikely
(
dec
<
0
))
break
;
}
while
(!
$
{
atomic
}
_try_cmpxchg
(
v
,
&
c
,
dec
));
return
dec
;
}
EOF