Sign in
android
/
platform
/
external
/
musl
/
dba68bf9
/
.
/
src
/
thread
/
sem_trywait.c
blob: dd8f57e36a0bd54a60a5b4c21516b9a1b6a8bba5 [
file
] [
log
] [
blame
]
#include
<semaphore.h>
#include
"pthread_impl.h"
int
sem_trywait
(
sem_t
*
sem
)
{
int
val
=
sem
->
__val
[
0
];
if
(
val
>
0
&&
a_cas
(
sem
->
__val
,
val
,
val
-
1
)==
val
)
return
0
;
errno
=
EAGAIN
;
return
-
1
;
}