projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
new internal locking primitive; drop spinlocks
[musl]
/
src
/
internal
/
libc.h
diff --git
a/src/internal/libc.h
b/src/internal/libc.h
index
39a1865
..
d6797f9
100644
(file)
--- a/
src/internal/libc.h
+++ b/
src/internal/libc.h
@@
-45,10
+45,11
@@
extern struct __libc *__libc_loc(void) __attribute__((const));
/* Designed to avoid any overhead in non-threaded processes */
void __lock(volatile int *);
/* Designed to avoid any overhead in non-threaded processes */
void __lock(volatile int *);
+void __unlock(volatile int *);
int __lockfile(FILE *);
void __unlockfile(FILE *);
#define LOCK(x) (libc.threads_minus_1 ? (__lock(x),1) : ((void)(x),1))
int __lockfile(FILE *);
void __unlockfile(FILE *);
#define LOCK(x) (libc.threads_minus_1 ? (__lock(x),1) : ((void)(x),1))
-#define UNLOCK(x) (
*(volatile int *)(x)=0
)
+#define UNLOCK(x) (
libc.threads_minus_1 ? (__unlock(x),1) : ((void)(x),1)
)
void __synccall(void (*)(void *), void *);
void __synccall_wait(void);
void __synccall(void (*)(void *), void *);
void __synccall_wait(void);