Sign in
chromium
/
external
/
github.com
/
kripken
/
emscripten
/
1.37.5
/
.
/
system
/
lib
/
libc
/
musl
/
src
/
thread
/
__lock.c
blob: 0874c04a4c0a81a9fa0dc032479ec18cec81d8aa [
file
] [
log
] [
blame
]
#include
"pthread_impl.h"
void
__lock
(
volatile
int
*
l
)
{
if
(
libc
.
threads_minus_1
)
while
(
a_swap
(
l
,
1
))
__wait
(
l
,
l
+
1
,
1
,
1
);
}
void
__unlock
(
volatile
int
*
l
)
{
if
(
l
[
0
])
{
a_store
(
l
,
0
);
if
(
l
[
1
])
__wake
(
l
,
1
,
1
);
}
}